分段操作接口
OCI在对非常大的数据类型操作时,可以执行数据的分段插入、更新和获取。通过应用程序在运行时分割均匀的或不均匀的片段大小。将OCIBindByPos()或OCIBindByPos2()或OCIBindByName()或OCIBindByName2()调用的mode参数设置为OCI_DATA_AT_EXEC时,表示OCI应用程序在运行时动态为插入或更新操作提供数据,OCIDefineByPos()或OCIDefineByPos2()调用的mode参数设置为OCI_DYNAMIC_FETCH时,它表示应用程序在提取时动态地为接收数据提供分配空间。当OCIStmtFetch2或OCIStmtExecute函数返回码为OCI_NEED_DATA,执行分段操作。
分段操作支持的类型
分段操作并不是所有的类型都支持,其中只支持如下类型:
- VARCHAR2
- STRING(Vastbase 内核不支持此类型)
- LONG(Vastbase 内核不支持此类型)
- LONG RAW(Vastbase 内核不支持此类型)
- RAW
- CLOB
- BLOB
OCIStmtGetPieceInfo
功能描述
在分段操作中获取分段信息。
功能说明
OCIStmtGetPieceInfo:获取分段操作的分段信息。
接口信息
函数/过程
OCIStmtGetPieceInfo语法如下:
sword OCIStmtGetPieceInfo( const OCIStmt *stmtp,
OCIError *errhp,
void **hndlpp,
ub4 *typep,
ub1 *in_outp,
ub4 *iterp,
ub4 *idxp,
ub1 *piecep);
参数的解释如下:
- stmtp(IN):执行时返回OCI_NEED_DATA的语句。
- errhp(IN):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- hndlpp(OUT):返回指向绑定或定义绑定句柄或定义其运行时数据需要或正在提供的指针。
- typep(OUT):hndlpp 指向的句柄类型:OCI_HTYPE_BIND(用于绑定句柄)或 OCI_HTYPE_DEFINE(用于定义句柄)。
- in_outp(OUT):如果IN绑定值需要数据,则返回OCI_PARAM_IN。如果数据可用作OUT绑定变量或定义位置值,则返回OCI_PARAM_OUT。
- iterp(OUT):返回多行操作的行号。
- idxp(OUT):PL/SQL 数组绑定操作的数组元素的索引。
- piecep(OUT):返回以下定义的值之一:OCI_ONE_PIECE、OCI_FIRST_PIECE、OCI_NEXT_PIECE 或 OCI_LAST_PIECE。
其他说明
无
OCIStmtSetPieceInfo
功能描述
在分段操作中设置分段信息。
功能说明
OCIStmtSetPieceInfo:设置分段操作的分段信息。
接口信息
函数/过程
OCIStmtSetPieceInfo语法如下:
sword OCIStmtSetPieceInfo ( void *hndlp,
ub4 type,
OCIError *errhp,
const void *bufp,
ub4 *alenp,
ub1 piece,
const void *indp,
ub2 *rcodep );
参数的解释如下:
- hndlp(IN/OUT):绑定或定义句柄。
- type(IN):句柄的类型。
- errhp(IN):当出现错误时,您可以传递给OCIErrorGet()以获取诊断信息的错误句柄。
- bufp(IN/OUT):当它是一个IN绑定变量时,指向包含数据值或片的存储的指针;否则,bufp是一个指向存储的指针,用于获取一块或一个值,用于OUT绑定和定义变量。对于命名数据类型或REF,返回指向对象或REF的指针。
- alenp(IN/OUT):件的长度或价值。不要在同一SQL语句的执行之间更改此参数。
- piece(IN):此参数仅用于IN绑定变量,有效值为:
- OCI_ONE_PIECE
- OCI_FIRST_PIECE
- OCI_NEXT_PIECE
- OCI_LAST_PIECE
- indp(IN/OUT):指向sb2值的指针或指向命名数据类型(SQLT_NTY)和REF(SQLT_REF)的指示符结构的指针,也就是说,根据数据类型,*indp可以是sb2或void*。
- rcodep(IN/OUT):返回代码。
其他说明
无