OCI指南 OCIDefineByPos 函式

2021-10-09 07:53:20 字數 1632 閱讀 2060

1. 作用:建立所選字段中的乙個欄位和輸出緩衝區的結合

2. 函式原型:

sword	ocidefinebypos(	

ocistmt *stmtp,

ocidefine **defnpp,

ocierror *errhp,

ub4 position,

dvoid *valuep,

sb4 value_sz,

ub2 dty,

dvoid *indp,

ub2 *rlenp,

ub2 *rcodep,

ub4 mode

);

3. 引數分析

stmtp:請求 sql 查詢的語句控制代碼。

defnpp:指向定義控制代碼指標的指標。如果這個引數為 null,這個函式將會隱式地分配定義控制代碼。在重新定義的情況下,乙個非null 控制代碼可以傳遞到這個引數。這個控制代碼用來儲存某個欄位的定義資訊。

errhp:錯誤控制代碼,當有錯誤發生時,我們可以將該錯誤控制代碼傳遞至 ocierrorget()函式獲取診斷資訊。

position:這個值在所選字段中的位置。位置是從 1 開始的,並且從左向右遞增。

valuep:指向 dty 引數所指明的型別的緩衝區或者緩衝區陣列的指標。對於 lob 字段,緩衝區指標必須是ociloblocator 型別的 lob 定位符的指標。

value_sz: valuep 指標所指向的緩衝區的大小。

dty:資料型別。用於指明所選字段如何轉換為程式變數。

indp:指示器變數或者陣列的指標。對於標準變數,該指標為指向 sb2 型別的的指標或者是乙個 sb2 型別的陣列。

rlenp:指向獲取到的資料的長度的陣列的指標。rlenp 中的每個元素都是資料的長度。

rcodep:字段級返回**陣列的指標。

mode:模式。有效的模式為:

·oci_default—預設模式。

·oci_define_soft.

·oci_dynamic_fetch.

4. 注釋

這個函式定義乙個將要從 oracle  伺服器中獲取資料的輸出緩衝區。這個函式會為所選字段隱式地分配定義控制代碼。如果*defnpp  為乙個非空指標,oci  假設這個指標指向乙個之前通過 ocihandlealloc()函式或者 ocidefinebypos()函式分配的有效的控制代碼。

獲取 lob 字段型別時,緩衝區指標必須是乙個指向 ociloblocator 型別的 lob 定位符的指標,通過 ocidescriptoralloc()函式來分配它。lob 字段返回 lob 定位符,而不是 lob 資料。

OCI學習筆記 一

最近要做乙個客戶端自動更新的東西,用c語言實現。很久不碰c語言了,能分到這樣的活,既開心又倍感壓力。具體實現的過程中,涉及到對oracle資料庫的訪問,以前上學時用c語言連mysql倒是做過些嘗試,但是連oracle卻沒做過。so,上網搜尋資料啦。pro c c odbc oci第一種方式相對來說,...

在debian上除錯OCI

在debian上除錯oci的時候接連出現了幾個問題,google,baidu了半天,加上查閱了n多亂七八糟的資料,終於算是解決了。1.首先是debian下環境變數的設定問題,在 etc profile 以及,bash profile下設定,重新登入後都不起作用,在 bashrc檔案裡設定,set檢視...

OCI面經 流程篇

hr call 電面 final interview 三輪vo lc49,bq,design hashmap hr call就是 如果簡歷符合jb上minimum requirement的話,好好準備一下簡歷就可以了吧,當時hr問了我很多實習的details 店面 店面沒有問lc,問了一些基礎,比如...