Pro*C/C++ 是 Oracle 提供的嵌入式 SQL 預編譯器,允許在 C/C++ 程式碼中直接撰寫 SQL。本文記錄在 Windows XP + VC++ 6.0 + Oracle 10g 環境下的配置步驟與常見坑點。
Tools → Options → Directories,Show directories for: Executable files 加入 $ORACLE_HOME\bin (含 proc.exe)。Include files,加入:$ORACLE_HOME\precomp\public (含 sqlca.h)$ORACLE_HOME\oci\include (OCI 標頭檔)Library files,加入 $ORACLE_HOME\oci\lib\msvc。Project → Settings → Link,Object/Library modules 加入 orasql10.lib、oci.lib。.pc 檔 (含 EXEC SQL 區塊)。proc iname=test.pc 產生 .c / .cpp。#include
#include
#include
EXEC SQL BEGIN DECLARE SECTION;
char uid[20] = "scott/tiger";
EXEC SQL END DECLARE SECTION;
int main() {
EXEC SQL CONNECT :uid;
if (sqlca.sqlcode != 0) {
printf("連線失敗: %.*s\n", sqlca.sqlerrm.sqlerrml, sqlca.sqlerrm.sqlerrmc);
return 1;
}
printf("連線成功!\n");
EXEC SQL COMMIT RELEASE;
return 0;
}
proc.exe 找不到:確認 PATH 包含 $ORACLE_HOME\bin,或在 VC++ 目錄設定。sqlca.h 找不到:確認 precomp\public 在 Include 路徑中。LNK2001: unresolved external symbol sqlcxt:未連結 orasql10.lib。ORA-12154:tnsnames.ora 設定錯誤或連線字串格式不正確。