proc編程 嵌入式sql:sql寫入到C語言程序中 proc編程頭文件路徑 app\xxx\product\11.2.0\dbhome_1\precomp\public proc編程要注意proc編譯器也會使用gcc編譯器中的頭文件,所以需要在proc編譯器中進行配置,加上系統的頭文件路徑 配置文件路徑是:app\xxx\product\11.2.0\dbhome_1\precomp\admin\pcscfg.cfg proc開發流程 1.proc工具預編譯 *.pc==>.c proc編譯選項:parse=full|none(default full for C,others for c++) code=ANSI_C|CPP(default ansi_c) C語言編譯:proc 源文件 生成文件 c++編譯:proc 源文件 生成文件 parse=none code=cpp 2.linux下編譯gcc -o dm01_hello dm01_hello.c -I/home/oracle_11/app/oracle/product/11.2.0/db_1/precomp/public \ -L/home/oracle_11/app/oracle/product/11.2.0/db_1/lib -lclntsh --linux查看oracle錯誤碼:oerr ora 錯誤碼 3.執行應用程序 proc程序結構 include 頭文件(c/c++ and pro*c/c++) 定義變量 定義函數 main 連接數據庫:connect SQL操作語句:EXEC SQL... 處理異常:exception handler 斷開連接:EXEC SQL COMMIT.ROLLBACK WORK release
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "sqlca.h" //先定義宿主變量(SQL變量) EXEC SQL BEGIN DECLARE SECTION; char * serverid="scott/123456"; EXEC SQL END DECLARE SECTION; void main() { int ret=0; //C語言中使用宿主變量 printf("serverid=%s\r\n",serverid); //連接數據庫 EXEC SQL connect:serverid; if(sqlca.sqlcode!=0) { ret=sqlca.sqlcode; printf("connect err :%d",ret); system("pause"); } printf("connect ok!\r\n"); //提交事務斷開連接 EXEC SQL commit release; printf("Oracle closed !\r\n"); system("pause"); }