|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
在solaris上,c程序連接oracle問題!在線等
環境solaris5.9,oracle9.2,cc。
如果用oracle的lib編譯proc,則報ELF錯誤CLASS64
然後改用lib32編譯成功,但是運行時報斷錯誤,coredump內存溢出.
程序已經精簡為就連接oracle數據庫如下,請高人指教!!!(在AIX上沒問題)
char *username = "portal";
char *password = "portal";
char *dbna = "portalDB";
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username2[20];
VARCHAR password2[20];
EXEC SQL END DECLARE SECTION;
printf("Connect ORACLE begin!\n");
printf("Connect ORACLE begin1!\n");
EXEC SQL CONNECT :username IDENTIFIED BY :password AT :dbna;
printf("Connect ORACLE begin2!\n");
if( sqlca.sqlcode != 0)
return 1;
else
return 0; |
在solaris上,c程序連接oracle問題!在線等
cc -O -xarch=v9 my.c -o test -L/oracle/product/9.2.0/lib -R/oracle/product/9.2.0/lib -lclntsh
在solaris5.8 oracle9.1下編譯,運行可以;假設你的文件為my.pc |
在solaris上,c程序連接oracle問題!在線等
你的編譯能通過? 奇怪!
在嵌SQL語句中的沒有使用宿主變量。改成unsername2就可以了。
注意,在SOLARIS上要已安裝了C開發包和調用cc的PATH路徑。不然,還是COREDUMP。 |
| |