最近研究PRO*C/C++ ,發現有幾個問題一直困擾着我:
看問題之前首先看這樣的兩條命令
1、預編譯命令:(myconn.pc是我編寫的PROC程序)
proc iname=myconn.pc oname=myconn.c
2、編譯命令:
cc -I${ORACLE_HOME}/precomp/public myconn.c -o myconn -L${ORACLE_HOME}/lib -lclntsh
問題一:
編譯用C語言寫的.pc文件 使用以上兩條命令
如果要編譯用C++寫的.pc文件則使用以下兩條命令
proc iname=myconn.pc oname=myconn.c code=cpp
c++ -I${ORACLE_HOME}/precomp/public myconn.c -o myconn -L${ORACLE_HOME}/lib -lclntsh
問題二:
預編譯存儲過程或PL/SQL塊的時候必須要使用以下命令
proc iname=myconn.pc oname=myconn.c sqlcheck=full userid=demo/demo@orcl
或
proc iname=myconn.pc oname=myconn.c code=cpp sqlcheck=full userid=demo/demo@orcl
編譯命令和以上一樣
注意:調用存儲過程 請使用EXEC SQL CALL procedure_name(:arg);
PL/SQL 請使用EXEC SQL EXCUTE
BEGIN
..........代碼.....
END;
END-EXEC;