# Oracle 基礎路徑
ORACLE_BASE=/rdsys/oracle
ORACLE_HOME=/rdsys/oracle/product/9.2.0
ORACLE_SID=longtop
# 網路與字元集
TNS_ADMIN=$ORACLE_HOME/network/admin
NLS_LANG=american_america.zhs16gbk
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
# 類別路徑
CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/JRE/lib/rt.jar:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
INFORMIXDIR=/informix
INFORMIXSERVER=app_32
ONCONFIG=onconfig
DBDATE=Y4MD
INFORMIXTERM=terminfo
# 函式庫與資料庫路徑
LIBPATH=/usr/lib:$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LIBPATH
DBPATH=$INFORMIXDIR/frm:$INFORMIXDIR/data
WORKDBS=becdb
PROC=proc
USERID=jhpt/jhpt
PROCPLSFLAGS=sqlcheck=full \
include=. \
include=$(INCLDIR) \
include=$(ORACLE_HOME)/precomp/public \
include=$(ORACLE_HOME)/rdbms/public \
mode=oracle \
lines=yes \
def_sqlcode=yes \
parse=none \
userid=$(USERID)
# 兩階段編譯
$(PROC) $(PROCPLSFLAGS) $(PCFLAG) iname=$*.pc # .pc → .c
cc -c $*.c # .c → .o
ESQL=esql
$(ESQL) -c $(FILE).ec # .ec 直接編譯為 .o,中間產生 .c
| 特性 | Oracle Pro*C | Informix ESQL/C |
|---|---|---|
| 前置處理器 | proc | esql |
| 輸入副檔名 | .pc | .ec |
| 編譯階段 | 兩階段 | 單指令完成 |
| Include 路徑 | 需手動指定多層 | 自動處理 |
~/.profile 或 /etc/profile.d/ 確保持久化setenv.sh 腳本,開發者 source 即可使用-I 明確指定標頭檔搜尋路徑,避免版本衝突sqlcheck=full 進行語義檢查正確的環境配置是資料庫應用程式穩定運行的基石,建議建立標準化部署檢查清單。