oracle proc 開發環境
1. 環境變數
? 系統執行需要配置以下內容
ORACLE_SID=ORA8
NLS_LANG=American_America.zhs16cgb231280
ORA_NLS33=/home/oracle/ocommon/nls/admin/data
ORACLE_TERM=vt100
SHLIB_PATH=/home/oracle/lib
LD_LIBRARY_PATH=/home/oracle/lib:/usr/lib:.
ORACLE_HOME=/home/oracle
ORACLE_OWNER=oracle
NLS_DATE_FORMAT='YYYY/MM/DD'
? Oracle Shared Library: SHLIB_PATH $ORACLE_HOME/lib
說明:Oracle Shared Library在安裝時自動建立,如有必要重建此庫,可以Oracle 使用者身份執行一下命令
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk client_sharedlib
? 日期格式的設定:有兩種方法
(1).透過在給定的SQL啟動中設定 alter session set NLS_DATE_FORMAT
(2).設定 INIT.ORA 中的 NLS_DATE_FORMAT 引數可設定預設日期的格式
? 預編譯選項:設定 PROCFLAGS='mode=ansi,def_sqlcode=true,parse=full,lines=true'
? 標頭檔案:sqlca.h , oraca.h , sqlda.h
2. 移植注意事項:
? 對於 char 型資料的處理:
Informix 中用雙引號括字串,而。。。Oracle 中字串用單引號 ’ 括起來,如用雙引號 ” 則會出錯(在Proc 中編譯時不報錯,執行時出錯)
如果插入的字串比欄位定義的長度長,在 Informix 中會自動截掉多餘的字元,而在 Oracle中會報錯
在Oracel 中要使用 string 型別要採用如下的宣告方式
char name[41];
EXEC SQL VAR name IS STRING(41);
? 標頭檔案的使用:
由於 Oracle 不使用 EXEC SQL DEFINE 定義宏,故要用到這些東西的地方,只有改成用常量或變數。
3. 相關命令
? 查錯用 oerr:命令格式 oerr ora err_num
? 查詢標示符相關的庫檔案: symfind symname
4. proc 預編譯設定
預編譯選項 設定方式 預設值 值域 說明
程式碼一致性 Mode=string Oracle ansi, iso, oracle
允許使用SQLCODE Def_sqlcode=boolean No yes, no,true, false
指定預編譯原始檔 Iname=string *none* *none*
指定預編譯標頭檔案路徑 Include=string OR include=(string, …) ( ) *none*
指定系統標頭檔案的路徑 Sys_include=stringOR Sys_include=(string, …) ( ) *none*
預編譯宏定義 define=string
預編譯後的程式碼型別 Code=string Kr_c ansi_c, cpp,kr_c
指定與字串陣列,字串對應的型別 Char_map=string Charz charz,varchar2,charf,string
指定連線資料庫的字串(username/password [@dbname]) Userid=string *none* *none*
指定 C 編譯器支援的字符集 Comp_charset=string Multi_byte multi_byte,single_byte
資料庫相容模式(Oracle) Dbms=string Native v6, v6_char,v7, native, v8
事物相關引數 Duration=string Transaction session, transaction (設定object 在cache中的時間)
錯誤處理 Errors=boolean Yes yes, no,true, false (是否將錯誤資訊傳送到終端)
資訊處理標準 Fips=string None none, sql89, sql2, yes, no
遊標控制 Hold_cursor=boolean No yes, no,true, false (control holding of cursors in the cursor cache)
控制遊標cache中的遊標釋放 Release_cursor=boolean No yes, no,true, false (control release of cursors from cursor cache)
Allow a NULL fetch without indicator variable Unsafe_null=boolean No yes, no,true, false
是否在產生的code 中加入行號(#line) Lines=boolean No yes, no,true, false
設定字串長度 Maxliteral=number 1024 10-1024
可以被cache的開啟的最大遊標數目 Maxopencursors=number 10 *none*
語言支援 nls_char, nls_local
是否使用 ORACA Oraca=boolean No yes, no,true, false
控制是否解析 non-SQL CODE Parse=string Full full, partial,none
Control flagging of select errors Select_error=boolean Yes yes, no, true, false
預編譯時對SQL程式碼的檢查方式 Sqlcheck=string Syntax(語法) none, syntax,semantics(語義), full, limited(有限的)
是否支援多執行緒 Threads=boolean No yes, no, true, false
允許使用varchar 結構 Varchar=boolean No yes, no,true, false
5. 資料型別
? Oracle ProC 原始資料型別
C Datatype or Pseudotype Description
Char single character
char[n] n-character array (string)
Int Integer
Short small integer
long large integer
float floating-point number (usually single precision)
Double floating-point number (always double precision)
VARCHAR[n] variable-length string
? Oracle Internal Type ?à C Type ( ProC External Type )
ORACLE Internal Type C Type(External Type)
VARCHAR2(Y)(Note 1) char
CHAR(X)(Note 1) char[n]VARCHAR[n]IntShortLongFloatDouble
NUMBER int
NUMBER(P,S)(Note 2) ShortLongFloatDoubleCharChar[n]VARCHAR[n]
DATE Char[n]VARCHAR[n]
LONG Char[n]VARCHAR[n]
RAW(X)(Note 1) Unsigned char[n]VARCHAR[n]
LONG RAW Unsigned char[n]VARCHAR[n]
ROWID Unsigned char[n]VARCHAR[n]
MLSLABEL Unsigned char[n]VARCHAR[n]
Notes:
1. X ranges from 1 to 255. 1 is the default value. Y ranges from 1 to 4000.
2. P ranges from 2 to 38. S ranges from -84 to 127.
? Informix Data Type ?àESQL/C Data Type ?à C Type
SQL Data Type ESQL/C Predefined Data Type C Language Type
BYTE loc_t
CHAR(n)CHARACTER(n) Fixchar array[n] orString array[n+1] char array[n + 1] or char *
DATE Date long int
DATETIME Datetime or dtime_t
DECIMAL(m,n)DECNUMERICMONEY(m,n) Decimal or dec_t
FLOATDOUBLE PRECISION Double
INTEGERINT 4-byte integer
INTERVAL Interval or intrvl_t
MULTISET(e) Collection
NCHAR(n) Fixchar array[n] orString array[n+1] char array[n + 1] or char *
NVARCHAR(m) Varchar[m+1] orString array[m+1] char array[m+1]
SERIAL 4-byte integer
SMALLFLOATREAL Float
SMALLINT 2-byte integer
TEXT loc_t
VARCHAR(m,x) Varchar[m+1] orString array[m+1] char array[m+1]
BLOB ifx_lo_t
BOOLEAN Boolean
CLOB ifx_lo_t
INT8 int8 or ifx_int8_t 8-byte integer
LIST(e) Collection
LVARCHAR Lvarchar Char
Opaque data type Lvarchar, fixed binary, orvar binary
ROW(...) Row
SERIAL8 int8 or ifx_int8_t 8-byte integer
SET(e) Collection
? Informix internal Type ?à C Type(External type Informix?à Oracle)?à Oracle Intal Type
Informix Internal Type C Type(External Type) ORACLE Internal Type
Char(x) Char(x) Char(x), varchar2(x)
Integer Long NUMBER(9)
Smallint Short Int NUMBER(6)
Decimal Int, float, double NUMBER
Float Float NUMBER(18,4)
Serial Long NUMBER(11)
Date Char(11)àDATE DATE (/ NUMBER(10) )
Money
DateTime Char(20) DATE
Interval
Varchar(1..255) Char(x) Char(x)
Text
Byte[@more@]
? 系統執行需要配置以下內容
ORACLE_SID=ORA8
NLS_LANG=American_America.zhs16cgb231280
ORA_NLS33=/home/oracle/ocommon/nls/admin/data
ORACLE_TERM=vt100
SHLIB_PATH=/home/oracle/lib
LD_LIBRARY_PATH=/home/oracle/lib:/usr/lib:.
ORACLE_HOME=/home/oracle
ORACLE_OWNER=oracle
NLS_DATE_FORMAT='YYYY/MM/DD'
? Oracle Shared Library: SHLIB_PATH $ORACLE_HOME/lib
說明:Oracle Shared Library在安裝時自動建立,如有必要重建此庫,可以Oracle 使用者身份執行一下命令
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk client_sharedlib
? 日期格式的設定:有兩種方法
(1).透過在給定的SQL啟動中設定 alter session set NLS_DATE_FORMAT
(2).設定 INIT.ORA 中的 NLS_DATE_FORMAT 引數可設定預設日期的格式
? 預編譯選項:設定 PROCFLAGS='mode=ansi,def_sqlcode=true,parse=full,lines=true'
? 標頭檔案:sqlca.h , oraca.h , sqlda.h
2. 移植注意事項:
? 對於 char 型資料的處理:
Informix 中用雙引號括字串,而。。。Oracle 中字串用單引號 ’ 括起來,如用雙引號 ” 則會出錯(在Proc 中編譯時不報錯,執行時出錯)
如果插入的字串比欄位定義的長度長,在 Informix 中會自動截掉多餘的字元,而在 Oracle中會報錯
在Oracel 中要使用 string 型別要採用如下的宣告方式
char name[41];
EXEC SQL VAR name IS STRING(41);
? 標頭檔案的使用:
由於 Oracle 不使用 EXEC SQL DEFINE 定義宏,故要用到這些東西的地方,只有改成用常量或變數。
3. 相關命令
? 查錯用 oerr:命令格式 oerr ora err_num
? 查詢標示符相關的庫檔案: symfind symname
4. proc 預編譯設定
預編譯選項 設定方式 預設值 值域 說明
程式碼一致性 Mode=string Oracle ansi, iso, oracle
允許使用SQLCODE Def_sqlcode=boolean No yes, no,true, false
指定預編譯原始檔 Iname=string *none* *none*
指定預編譯標頭檔案路徑 Include=string OR include=(string, …) ( ) *none*
指定系統標頭檔案的路徑 Sys_include=stringOR Sys_include=(string, …) ( ) *none*
預編譯宏定義 define=string
預編譯後的程式碼型別 Code=string Kr_c ansi_c, cpp,kr_c
指定與字串陣列,字串對應的型別 Char_map=string Charz charz,varchar2,charf,string
指定連線資料庫的字串(username/password [@dbname]) Userid=string *none* *none*
指定 C 編譯器支援的字符集 Comp_charset=string Multi_byte multi_byte,single_byte
資料庫相容模式(Oracle) Dbms=string Native v6, v6_char,v7, native, v8
事物相關引數 Duration=string Transaction session, transaction (設定object 在cache中的時間)
錯誤處理 Errors=boolean Yes yes, no,true, false (是否將錯誤資訊傳送到終端)
資訊處理標準 Fips=string None none, sql89, sql2, yes, no
遊標控制 Hold_cursor=boolean No yes, no,true, false (control holding of cursors in the cursor cache)
控制遊標cache中的遊標釋放 Release_cursor=boolean No yes, no,true, false (control release of cursors from cursor cache)
Allow a NULL fetch without indicator variable Unsafe_null=boolean No yes, no,true, false
是否在產生的code 中加入行號(#line) Lines=boolean No yes, no,true, false
設定字串長度 Maxliteral=number 1024 10-1024
可以被cache的開啟的最大遊標數目 Maxopencursors=number 10 *none*
語言支援 nls_char, nls_local
是否使用 ORACA Oraca=boolean No yes, no,true, false
控制是否解析 non-SQL CODE Parse=string Full full, partial,none
Control flagging of select errors Select_error=boolean Yes yes, no, true, false
預編譯時對SQL程式碼的檢查方式 Sqlcheck=string Syntax(語法) none, syntax,semantics(語義), full, limited(有限的)
是否支援多執行緒 Threads=boolean No yes, no, true, false
允許使用varchar 結構 Varchar=boolean No yes, no,true, false
5. 資料型別
? Oracle ProC 原始資料型別
C Datatype or Pseudotype Description
Char single character
char[n] n-character array (string)
Int Integer
Short small integer
long large integer
float floating-point number (usually single precision)
Double floating-point number (always double precision)
VARCHAR[n] variable-length string
? Oracle Internal Type ?à C Type ( ProC External Type )
ORACLE Internal Type C Type(External Type)
VARCHAR2(Y)(Note 1) char
CHAR(X)(Note 1) char[n]VARCHAR[n]IntShortLongFloatDouble
NUMBER int
NUMBER(P,S)(Note 2) ShortLongFloatDoubleCharChar[n]VARCHAR[n]
DATE Char[n]VARCHAR[n]
LONG Char[n]VARCHAR[n]
RAW(X)(Note 1) Unsigned char[n]VARCHAR[n]
LONG RAW Unsigned char[n]VARCHAR[n]
ROWID Unsigned char[n]VARCHAR[n]
MLSLABEL Unsigned char[n]VARCHAR[n]
Notes:
1. X ranges from 1 to 255. 1 is the default value. Y ranges from 1 to 4000.
2. P ranges from 2 to 38. S ranges from -84 to 127.
? Informix Data Type ?àESQL/C Data Type ?à C Type
SQL Data Type ESQL/C Predefined Data Type C Language Type
BYTE loc_t
CHAR(n)CHARACTER(n) Fixchar array[n] orString array[n+1] char array[n + 1] or char *
DATE Date long int
DATETIME Datetime or dtime_t
DECIMAL(m,n)DECNUMERICMONEY(m,n) Decimal or dec_t
FLOATDOUBLE PRECISION Double
INTEGERINT 4-byte integer
INTERVAL Interval or intrvl_t
MULTISET(e) Collection
NCHAR(n) Fixchar array[n] orString array[n+1] char array[n + 1] or char *
NVARCHAR(m) Varchar[m+1] orString array[m+1] char array[m+1]
SERIAL 4-byte integer
SMALLFLOATREAL Float
SMALLINT 2-byte integer
TEXT loc_t
VARCHAR(m,x) Varchar[m+1] orString array[m+1] char array[m+1]
BLOB ifx_lo_t
BOOLEAN Boolean
CLOB ifx_lo_t
INT8 int8 or ifx_int8_t 8-byte integer
LIST(e) Collection
LVARCHAR Lvarchar Char
Opaque data type Lvarchar, fixed binary, orvar binary
ROW(...) Row
SERIAL8 int8 or ifx_int8_t 8-byte integer
SET(e) Collection
? Informix internal Type ?à C Type(External type Informix?à Oracle)?à Oracle Intal Type
Informix Internal Type C Type(External Type) ORACLE Internal Type
Char(x) Char(x) Char(x), varchar2(x)
Integer Long NUMBER(9)
Smallint Short Int NUMBER(6)
Decimal Int, float, double NUMBER
Float Float NUMBER(18,4)
Serial Long NUMBER(11)
Date Char(11)àDATE DATE (/ NUMBER(10) )
Money
DateTime Char(20) DATE
Interval
Varchar(1..255) Char(x) Char(x)
Text
Byte[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16396910/viewspace-1029547/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- proc 開發環境配置(測試透過)開發環境
- emacs開發環境配置(4)——rust開發環境Mac開發環境Rust
- 配置開發環境、生成環境、測試環境開發環境
- 試用環境開發環境不發郵件開發環境
- 開發環境配置開發環境
- PHP開發環境PHP開發環境
- 一、開發環境開發環境
- phpwamp開發環境搭建詳解,phpwamp綠色整合環境開發環境一鍵搭建PHP開發環境
- ubuntu環境下搭建以太坊開發環境Ubuntu開發環境
- 1 – 搭建開發環境開發環境
- react 配置開發環境React開發環境
- PHP 線上開發環境PHP開發環境
- rollup 開發環境搭建開發環境
- js開發環境配置JS開發環境
- 搭建go開發環境Go開發環境
- Androdi開發環境搭建開發環境
- 前端開發環境搭建前端開發環境
- Theia 開發環境搭建開發環境
- Java開發環境配置Java開發環境
- QEMU 開發環境搭建開發環境
- Cordova 開發環境搭建開發環境
- 搭建VUE開發環境Vue開發環境
- weex開發環境配置開發環境
- 安卓開發環境搭建安卓開發環境
- 搭建Layui開發環境UI開發環境
- python開發環境Python開發環境
- 搭建scala開發環境開發環境
- EBS開發環境搭建開發環境
- andriod開發環境搭建,開發環境
- Erlang開發環境搭建開發環境
- Kafka開發環境搭建Kafka開發環境
- Qt開發環境搭建QT開發環境
- GeoServer開發環境搭建Server開發環境
- JAVA開發環境搭建Java開發環境
- 二、Rust 開發環境Rust開發環境
- Arduino開發環境配置UI開發環境
- lua 開發環境搭建開發環境
- Ubuntu開發環境配置Ubuntu開發環境