Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

compatibility Oracle8i #20

Closed
tainnok opened this issue Nov 30, 2015 · 6 comments
Closed

compatibility Oracle8i #20

tainnok opened this issue Nov 30, 2015 · 6 comments
Assignees

Comments

@tainnok
Copy link

tainnok commented Nov 30, 2015

my plan is to use ocilib for an big/old software-project which right now use Oracle8 (8.1.7) as DB.
so i plan to use ocilib in the beginning with the existing Oracle8 and in the end with an actual Oracle12.

But i run into several problems to use ocilib with oracle8.

Additional Informations:
ocilib version: version 4.2.0 (2015-09-21)
OS: openSuSE 13.2 x64
configure-command: ./configure --prefix=/home/sd1/tmp/ocilib/install/ --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
(atm it's a 32bit project).

this problems i discoverd:

  1. not all headerfiles are located in $ORACLE_HOME/rdbms/public, there are a couple of files located in $ORACLE_HOME/rdbms/demo ... so i created soft-links in $ORACLE_HOME/rdbms/public to ../demo/

  2. more important:
    i was not able to build ocilib and/or example for ocilib (the minimal c-example from here: http://vrogier.github.io/ocilib/doc/)

I just commented source so that i was able to compile/link.
that files need modifications:
./src/interval.c
eg.: interval.c:158:43: error: ‘IntervalTypeValues’ undeclared (first use in this function)
OCI_CHECK_ENUM_VALUE(con, NULL, type, IntervalTypeValues, OTEXT("Interval type"));

./src/statement.c
eg.: statement.c:3102:18: error: ‘code’ undeclared (first use in this function)
OCI_NOT_USED(code)
statement.c:3276:49: error: ‘LobTypeValues’ undeclared (first use in this function)
OCI_CHECK_ENUM_VALUE(stmt->con, stmt, type, LobTypeValues, OTEXT("Lob type"))

./src/column.c

./src/lob.c

./src/dirpath.c
eg.: undefined reference to `OCIDirPathColArrayEntrySet'

i try to add the files to that report (just add .txt so that it's accepted to upload) ... all changes should be marked with 'KONNI' or 'konni'
but will work ocilib correct with 'just' commend that parts of the source-code?
so can i use ocilib with oracle8 in productive enviroment? (with that changes?)

Hopefully that informations are helpfull for you, maybe there is a answer (or fix?) for Oracle8i?
Greetings from Austria, Markus

column.c.txt
dirpath.c.txt
interval.c.txt
lob.c.txt
statement.c.txt

@tainnok
Copy link
Author

tainnok commented Nov 30, 2015

oh, i forgot to say: i also try to link against lclient8 ...

@vrogier
Copy link
Owner

vrogier commented Nov 30, 2015

Hi,
Thanks for reporting issues.
For the past releases, I may have by inadvertence, broke Oracle 8i compatibility.
Even if Oracle 8i is about 20 years old and no more supported by Oracle for years, I will fix these issues asap.

Regards,

Vincent

@vrogier
Copy link
Owner

vrogier commented Nov 30, 2015

Regarding direct path, as mentioned in the ocilib documentation section "Installing OCILIB":

Some older version of Oracle 8 have direct path API symbols located in the library libclient8. With these versions, you must include as well the linker flag -lclient8 to use Direct Path API.

@vrogier
Copy link
Owner

vrogier commented Nov 30, 2015

Can you check latest code to see if it is okay for you?

thanks

@tainnok
Copy link
Author

tainnok commented Dec 1, 2015

wow, thanks a lot for your fast response.

yes, it look like it now works for me (and Oracle8i).
first i have same problems with "undefined reference" to direct path functions ... as i said yesterday, i already try it with -lclient8.
but it's just a question of link-order. put -lclient8 in the right order, than it works.

thanks a lot.

yesterday morning we had a discussion if ocilib will be useable for us, one point was if it's under 'active development' ... your very fast and helpfull answer will say: "definitely yes" :)

So thanks a lot, and now we will have a closer look to ocilib :)

@vrogier
Copy link
Owner

vrogier commented Dec 1, 2015

Hi,

You're welcome :)

Yes, you're right, OCILIB is under active development and support :)
But as the library is mature, there is no more new cool stuff to on a regular basis.
Most of active recent activity was focused on the C++ API that was added early this year.
I'm waiting for Oracle 12C R2 to add cool new feature support :)
In the meanwhile, it is more about support

Best regards,

Vincent

oleksiivorobiov pushed a commit to oleksiivorobiov/ocilib that referenced this issue Dec 2, 2015
@vrogier vrogier self-assigned this Jan 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants