For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!
Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.
Below is my test environment...
$ uname -a Linux tsys64 2.6.16.21-0.8-smp #1 SMP Mon Jul 3 18:25:39 UTC 2006 x86_64 x86_64 x86_64 GNU/Linux $ cat /etc/SuSE-release SUSE Linux Enterprise Server 10 (x86_64) VERSION = 10 $ $ # Unzip Instant Client $ $ unzip instantclient-basic-linux-x86-64-10.2.0.3-20070103.zip $ unzip instantclient-odbc-linux-x86-64-10.2.0.3-20070103.zip $ cd instantclient_10_2 $ export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH $ cd .. $ $ # Build unixODBC $ $ wget http://www.unixodbc.org/unixODBC-2.2.12.tar.gz $ tar zxf unixODBC-2.2.12.tar.gz $ cd unixODBC-2.2.12 $ CFLAGS="-O2 -mtune=nocona" ./configure prefix=$PWD/install disable-gui $ make -j 2 && make install $ cd install/bin $ export PATH=$PWD:$PATH $ cd ../lib $ export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH $ cd ../etc $ $ # Create odbcinst.ini $ $ sed 's/^X//' << 'SHAR_EOF' > 'odbcinst.ini' && X[Oracle10gODBCDriver] XDescription = Oracle 10g Linux ODBC driver XDriver = /home/test/pkg/instantclient_10_2/libsqora.so.10.1 XSetup = XFileUsage = XCPTimeout = XCPReuse = SHAR_EOF : || $echo 'restore of' 'odbcinst.ini' 'failed' $ $ # Create odbc.ini $ $ sed 's/^X//' << 'SHAR_EOF' > 'odbc.ini' && X[demodb] XServerName = ORCL XApplication Attributes = T XAttributes = W XBatchAutocommitMode = IfAllSuccessful XCloseCursor = F XDisableDPM = F XDisableMTS = T XDriver = Oracle10gODBCDriver XEXECSchemaOpt = XEXECSyntax = T XFailover = T XFailoverDelay = 10 XFailoverRetryCount = 10 XFetchBufferSize = 64000 XForceWCHAR = F XLobs = T XLongs = T XMetadataIdDefault = F XQueryTimeout = T XResultSets = T XSQLGetData extensions = F XTranslation DLL = XTranslation Option = 0 SHAR_EOF : || $echo 'restore of' 'odbc.ini' 'failed'
But, something is wrong. I can get it almost working... but it keeps segfaulting around memory-related issues. Below are several examples using isql (I had to patch isql to use ODBC 3.0-compliant SQLAllocHandle instead of SQLAlloc(Env|Connect|Stmt|...))
SQL> select count(*) from user_tables; Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 47847904429776 (LWP 6824)] 0x00002b84753d155e in wordcopyfwd_aligned () from /lib64/libc.so.6 (gdb) bt #0 0x00002b84753d155e in wordcopyfwd_aligned () from /lib64/libc.so.6 #1 0x00002b84753cf9cf in memmove () from /lib64/libc.so.6 #2 0x00002b847585fae3 in bccSQLPrepareLckd () from /home/test/pkg/instantclient_10_2/libsqora.so.10.1 #3 0x00002b847585f70b in SQLPrepareW () from /home/test/pkg/instantclient_10_2/libsqora.so.10.1 #4 0x00002b8474fe2f36 in SQLPrepare () from /home/test/pkg/unixODBC-2.2.12/install/lib/libodbc.so.1 #5 0x00000000004025b4 in main (argc=<value optimized out>, argv=<value optimized out>) at isql.c:319 SQL> select * from user_tables; Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 47257070618320 (LWP 6844)] 0x00002afae4cbf40b in malloc_consolidate () from /lib64/libc.so.6 (gdb) bt #0 0x00002afae4cbf40b in malloc_consolidate () from /lib64/libc.so.6 #1 0x00002afae4cc12f9 in intmalloc () from /lib64/libc.so.6 #2 0x00002afae4cc27ff in calloc () from /lib64/libc.so.6 #3 0x00002afae5144ab8 in pMEMAlloc () from /home/test/pkg/instantclient_10_2/libsqora.so.10.1 #4 0x00002afae5157bd1 in bccSQLPrepareLckd () from /home/test/pkg/instantclient_10_2/libsqora.so.10.1 #5 0x00002afae515770b in SQLPrepareW () from /home/test/pkg/instantclient_10_2/libsqora.so.10.1 #6 0x00002afae48daf36 in SQLPrepare () from /home/test/pkg/unixODBC-2.2.12/install/lib/libodbc.so.1 #7 0x00000000004025b4 in main (argc=<value optimized out>, argv=<value optimized out>) at isql.c:319
Everyone else see the same thing?