藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 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。



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com