代码如下: occi.cpp#include <stdlib.h>
#include <occi.h>
#include <iostream>using namespace oracle::occi;
using namespace std;int occi_dbop()
{
        Environment *env = Environment::createEnvironment();
        Connection *conn = env->createConnection( "u", "u", "test" );//all strings
        Statement *stmt = conn->createStatement( "select acct from company");
        ResultSet *rs = stmt->executeQuery();        while( rs->next() )
        {
                string acct = rs->getString( 1 );
                cout<<acct<<endl;
        }        conn->terminateStatement (stmt);
        env->terminateConnection (conn);
        Environment::terminateEnvironment (env);        return 0;
}int main( int argc, char ** argv )
{
        occi_dbop();
        return 0;
}Makefile
原来的编译的时候有waring: /usr/bin/ld: warning: libstdc++.so.5, needed by /home/db/oracle/product/10.2.0/db_1/lib/libocci.so, may conflict with libstdc++.so.6;google后解决了,参考
http://forums.oracle.com/forums/thread.jspa?messageID=1394811
http://www.oracle.com/technology/tech/oci/occi/occidownloads.htmlINCS    = -I$(ORACLE_HOME)/rdbms/public/
#LIBDIRS = -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib   
LIBDIRS = -L$(HOME)/my_ora_lib/occi_gcc343_x86_64_102030 -L$(ORACLE_HOME)/rdbms/lib
LIB     = -lclntsh -locciocci : occi.cpp
        g++ -g $(INCS) $(LIBDIRS) $(LIB) occi.cpp -o occi机器环境:
>uname -a
Linux test111 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:56:28 EST 2006 x86_64 x86_64 x86_64 GNU/Linux出错信息:只取出第一条帐号
>./occi
1108071001512505010000000032
*** glibc detected *** free(): invalid pointer: 0x0000000000537528 ***
Abortedgdb信息
(gdb) r
Starting program: ./occi
[Thread debugging using libthread_db enabled]
[New Thread 182923541376 (LWP 20531)]
1108071001512505010000000032
*** glibc detected *** free(): invalid pointer: 0x0000000000537528 ***Program received signal SIGABRT, Aborted.
[Switching to Thread 182923541376 (LWP 20531)]
0x00000036dbf2e2ed in raise () from /lib64/tls/libc.so.6
(gdb) bt
#0  0x00000036dbf2e2ed in raise () from /lib64/tls/libc.so.6
#1  0x00000036dbf2fa3e in abort () from /lib64/tls/libc.so.6
#2  0x00000036dbf62db1 in __libc_message () from /lib64/tls/libc.so.6
#3  0x00000036dbf6888e in _int_free () from /lib64/tls/libc.so.6
#4  0x00000036dbf68bd6 in free () from /lib64/tls/libc.so.6
#5  0x00000036decae19e in operator delete () from /usr/lib64/libstdc++.so.6
#6  0x00000036dec90562 in std::string::_Rep::_M_destroy () from /usr/lib64/libstdc++.so.6
#7  0x00000036dec907fa in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string ()
   from /usr/lib64/libstdc++.so.6
#8  0x0000000000401188 in occi_dbop () at occi.cpp:18
#9  0x00000000004011ec in main (argc=1, argv=0x7fbffff4c8) at occi.cpp:30