#LOB函数
# OCILobGetLength()
该函数用于获取LOB的长度。
# OCI函数原型
sword OCILobGetLength ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
ub4 *lenp );
# 参数说明
| 参数名 | 含义 |
|---|---|
| svchp (IN) | 服务上下文句柄 |
| errhp (IN/OUT) | 一个错误句柄,当出现错误时可以获取诊断信息 |
| locp (IN) | 唯一引用LOB的LOB定位器 |
| lenp (OUT) | 在输出时,如果LOB不为NULL,则为LOB的长度 |
# 规格
无。
# 其他说明
无。
# OCILobRead()
该函数用于调用指定的LOB的一部分读入缓冲区。
# OCI函数原型
sword OCILobRead ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
ub4 *amtp,
ub4 offset,
void *bufp,
ub4 bufl,
void *ctxp,
OCICallbackLobRead (cbfp)
( void *ctxp,
const void *bufp,
ub4 len,
ub1 piece
)
ub2 csid,
ub1 csfrm );
# 参数说明
| 参数名 | 含义 |
|---|---|
| svchp (IN/OUT) | 服务上下文句柄 |
| errhp (IN/OUT) | 一个错误句柄,当出现错误时可以获取诊断信息 |
| locp (IN) | 唯一引用LOB的LOB定位器。此定位器必须是从svchp指定的服务器获取的定位器 |
| amtp (IN/OUT) | 以字节或字符为单位的数量 |
| offset (IN) | 在输入时,这是从LOB值开始的绝对偏移量。对于字符LOB(“CLOB”、“NCLOB”),它是从LOB开始的字符数,对于二进制LOB,它是字节数 |
| bufp (IN/OUT) | 指向一个缓冲区的指针,在该缓冲区中读取数据。所分配的内存的长度假定为bufl |
| bufl (IN) | 缓冲区的长度 |
| ctxp (IN) | 回调函数的上下文指针 |
| cbfp (IN) | 回调函数 |
| ctxp (IN) | 回调函数的上下文 |
| bufp (IN/OUT) | 缓冲区指针 |
| len (IN) | bufp中当前片段的长度(以字节为单位) |
| piece (IN) | OCI_FIRST_PIECE, OCI_NEXT_PIECE, 或 OCI_LAST_PIECE |
| csid (IN) | 缓冲区数据的字符集ID |
| csfrm (IN) | 缓冲区数据的字符集形式 |
# 规格
该函数支持如下的调用方式:
| 参数 | 有效值 |
|---|---|
| ctxp | NULL |
| cbfp | NULL |
| csid | 0 |
| csfrm | SQLCS_IMPLICIT |
# 其他说明
无特殊说明。
# OCILobWrite()
将缓冲区写入LOB。
# OCI函数原型
sword OCILobWrite ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
ub4 *amtp,
ub4 offset,
void *bufp,
ub4 buflen,
ub1 piece,
void *ctxp,
OCICallbackLobWrite (cbfp)
(
void *ctxp,
void *bufp,
ub4 *lenp,
ub1 *piecep
)
ub2 csid,
ub1 csfrm );
# 参数说明
| 参数名 | 含义 |
|---|---|
| svchp (IN/OUT) | 服务上下文句柄 |
| errhp (IN/OUT) | 一个错误句柄,当出现错误时可以获取诊断信息 |
| locp (IN/OUT) | 唯一引用LOB的内部LOB定位器。此定位器必须是从svchp指定的服务器获取的定位器。 |
| amtp (IN/OUT) | 以字节或字符为单位的数量 |
| offset (IN) | 在输入时,这是从LOB值开始的绝对偏移量。对于字符LOB(“CLOB”、“NCLOB”),它是从LOB开始的字符数,对于二进制LOB,它是字节数。 |
| bufp (IN) | 指向写入工件的缓冲区的指针 |
| buflen (IN) | 缓冲区中数据的长度(以字节为单位) |
| piece (IN) | 正在写入缓冲区的哪一部分 |
| ctxp (IN) | 回调函数的上下文指针 |
| cbfp (IN) | 一个回调函数,可以注册为在分段写入中为每个片段调用 |
| ctxp (IN) | 回调函数的上下文 |
| bufp (IN/OUT) | 缓冲区指针 |
| lenp (IN/OUT) | 缓冲区(in)中数据的长度(以字节为单位),以及bufp中当前片段的长度(以字节为单位) |
| piecep (OUT) | OCI_NEXT_PIECE, 或 OCI_LAST_PIECE |
| csid (IN) | 缓冲区数据的字符集ID |
| csfrm (IN) | 缓冲区数据的字符集形式 |
# 规格
该函数支持如下的调用方式:
| 参数 | 有效值 |
|---|---|
| piecep | OCI_ONE_PIECE |
| ctxp | NULL |
| cbfp | NULL |
| csid | 0 |
| csfrm | SQLCS_IMPLICIT |
# 其他说明
无特殊说明。
# OCILobIsEqual()
比较两个LOB是否相等。
# OCI函数原型
sword OCILobIsEqual ( OCIEnv *envhp,
const OCILobLocator *x,
const OCILobLocator *y,
boolean *is_equal );
# 参数说明
| 参数名 | 含义 |
|---|---|
| envhp (IN) | 环境句柄 |
| x (IN) | 唯一引用LOB的内部LOB定位器。此定位器必须是从svchp指定的服务器获取的定位器。 |
| y (IN) | 唯一引用LOB的内部LOB定位器。此定位器必须是从svchp指定的服务器获取的定位器。 |
| is_equal (OUT) | 如果两个LOB相等返回TRUE,否则返回FALSE。 |
# 规格
无。
# 其他说明
无特殊说明。
# OCILobCharSetForm()
获取LOB的字符集形式。
# OCI函数原型
sword OCILobCharSetForm ( OCIEnv *envhp,
OCIError *errhp,
const OCILobLocator *locp,
ub1 *csfrm );
# 参数说明
| 参数名 | 含义 |
|---|---|
| envhp (IN/OUT) | 环境句柄 |
| errhp (IN/OUT) | 一个错误句柄,当出现错误时可以获取诊断信息 |
| locp (IN) | 唯一引用LOB的内部LOB定位器。此定位器必须是从svchp指定的服务器获取的定位器。 |
| csfrm (OUT) | 输出LOB的字符集形式。如果输入LOB类型是BLOB,csfrm则返回0,因为二进制BLOB没有字符集的概念。csfrm不能为NULL。csfrm 有两个可能的非零返回值:SQLCS_IMPLICIT - 数据库字符集ID,默认值;SQLCS_NCHAR - NCHAR字符集ID。 |
# 规格
无。
# 其他说明
无特殊说明。
# OCILobCharSetId()
获取LOB的字符集ID。
# OCI函数原型
sword OCILobCharSetId ( OCIEnv *envhp,
OCIError *errhp,
const OCILobLocator *locp,
ub2 *csid );
# 参数说明
| 参数名 | 含义 |
|---|---|
| envhp (IN/OUT) | 环境句柄 |
| errhp (IN/OUT) | 一个错误句柄,当出现错误时可以获取诊断信息 |
| locp (IN) | 唯一引用LOB的内部LOB定位器。此定位器必须是从svchp指定的服务器获取的定位器。 |
| csid (OUT) | 输出LOB的字符集ID。如果输入LOB类型是BLOB,csid则返回0,因为二进制BLOB没有字符集的概念。csid不能为NULL。 |
# 规格
无。
# 其他说明
无特殊说明。
# OCILobGetChunkSize()
获取LOB的块大小。
# OCI函数原型
sword OCILobGetChunkSize ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
ub4 *chunk_size );
# 参数说明
| 参数名 | 含义 |
|---|---|
| svchp (IN) | 服务上下文句柄 |
| errhp (IN/OUT) | 一个错误句柄,当出现错误时可以获取诊断信息 |
| locp (IN/OUT) | 唯一引用LOB的内部LOB定位器。此定位器必须是从svchp指定的服务器获取的定位器。 |
| chunk_size (OUT) | 用于存储内部LOB值的块空间大小,这是用户在读取或写入LOB值时建议使用的空间大小。对于BLOB、CLOB和NCLOB,chunk_size都返回字节大小。 |
# 规格
无。
# 其他说明
无特殊说明。
# OCILobCreateTemporary()
创建临时LOB。
# OCI函数原型
sword OCILobCreateTemporary(OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
ub2 csid,
ub1 csfrm,
ub1 lobtype,
boolean cache,
OCIDuration duration);
# 参数说明
| 参数名 | 含义 |
|---|---|
| svchp (IN) | 服务上下文句柄 |
| errhp (IN/OUT) | 一个错误句柄,当出现错误时可以获取诊断信息 |
| locp (IN/OUT) | 唯一引用LOB的内部LOB定位器。此定位器必须是从svchp指定的服务器获取的定位器。 |
| csid (IN) | LOB字符集ID。 |
| csfrm (IN) | 缓冲区数据的LOB字符集形式。csfrm参数有两个可能的非零值:SQLCS_IMPLICIT - 数据库字符集ID,用于创建CLOB。OCI_DEFAULT 也可用于隐式创建CLOB。SQLCS_NCHAR - NCHAR 字符集ID,用于创建NCLOB。默认值为SQLCS_IMPLICIT。 |
| lobtype (IN) | 要创建的LOB类型。有效值包括OCI_TEMP_BLOB - 用于创建临时BLOB,OCI_TEMP_CLOB - 用于创建临时CLOB或NCLOB。 |
| cache (IN) | 如果临时LOB应读入缓存,则传递TRUE;如果不应读入缓存,则传递FALSE。对于NOCACHE功能,默认值为FALSE。 |
| duration (IN) | 临时LOB 的持续时间。有效值如下:OCI_DURATION_SESSION、OCI_DURATION_CALL。 |
# 规格
该函数支持如下的调用方式:
| 参数 | 有效值 |
|---|---|
| csid | OCI_DEFAULT |
| csfrm | SQLCS_IMPLICIT |
| cache | FALSE |
| duration | OCI_DURATION_SESSION |
# 其他说明
无特殊说明。
# OCILobIsTemporary()
判断LOB是否是临时LOB。
# OCI函数原型
sword OCILobIsTemporary(OCIEnv *envhp,
OCIError *errhp,
OCILobLocator *locp,
boolean *is_temporary);
# 参数说明
| 参数名 | 含义 |
|---|---|
| envhp (IN) | 环境句柄 |
| errhp (IN/OUT) | 一个错误句柄,当出现错误时可以获取诊断信息 |
| locp (IN) | 唯一引用LOB的内部LOB定位器。此定位器必须是从svchp指定的服务器获取的定位器。 |
| is_temporary (OUT) | 如果是临时LOB返回TRUE,否则返回FALSE。 |
# 规格
无。
# 其他说明
无特殊说明。
# OCILobFreeTemporary()
释放临时LOB。
# OCI函数原型
sword OCILobFreeTemporary( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp);
# 参数说明
| 参数名 | 含义 |
|---|---|
| svchp (IN/OUT) | 服务上下文句柄 |
| errhp (IN/OUT) | 一个错误句柄,当出现错误时可以获取诊断信息 |
| locp (IN/OUT) | 唯一引用LOB的内部LOB定位器。此定位器必须是从svchp指定的服务器获取的定位器。 |
# 规格
无。
# 其他说明
无特殊说明。
# OCILobRead2()
该函数用于调用指定的LOB的一部分读入缓冲区。
# OCI函数原型
sword OCILobRead2 ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
oraub8 *byte_amtp,
oraub8 *char_amtp,
oraub8 offset,
void *bufp,
oraub8 bufl,
ub1 piece,
void *ctxp,
OCICallbackLobRead2 (cbfp)
( void *ctxp,
const void *bufp,
oraub8 lenp,
ub1 piecep
void **changed_bufpp,
oraub8 *changed_lenp
)
ub2 csid,
ub1 csfrm );
# 参数说明
| 参数名 | 含义 |
|---|---|
| svchp (IN/OUT) | 服务上下文句柄。 |
| errhp (IN/OUT) | 一个错误句柄,当出现错误时可以获取诊断信息。 |
| locp (IN) | 唯一引用LOB的LOB定位器。此定位器必须是从svchp指定的服务器获取的定位器。 |
| byte_amtp (IN/OUT) | IN - 从数据库读取的字节数。始终用于BLOB ,对于CLOB和NCLOB,只有char_amtp为零时才会使用;OUT - 读入用户缓冲区的字节数。 |
| char_amtp (IN/OUT) | IN - 要读入用户缓冲区的最大字符数,BLOB忽略;OUT - 读入用户缓冲区的字符数,BLOB忽略。 |
| offset (IN) | 在输入时,这是从LOB值开始的绝对偏移量。对于字符LOB(“CLOB”、“NCLOB”),它是从LOB开始的字符数,对于二进制LOB,它是字节数。 |
| bufp (IN/OUT) | 指向一个缓冲区的指针,在该缓冲区中读取数据。所分配的内存的长度假定为bufl。 |
| bufl (IN) | 缓冲区的长度。 |
| piece (IN) | 不进行轮询,调用传递OCI_ONE_PIECE;要进行轮询,请在第一次调用时传递OCI_FIRST_PIECE,并在随后的调用中传递OCI_NEXT_PIECE。使用回调时应传递OCI_FIRST_PIECE。 |
| ctxp (IN) | 回调函数的上下文指针。 |
| cbfp (IN) | 回调函数。 |
| ctxp (IN) | 回调函数的上下文。 |
| bufp (IN/OUT) | 缓冲区指针。 |
| lenp (IN) | bufp中当前片段的长度(以字节为单位) |
| piecep (IN) | OCI_FIRST_PIECE, OCI_NEXT_PIECE, 或 OCI_LAST_PIECE |
| changed_bufpp (OUT) | 如果回调函数希望使用新缓冲区来读取下一块数据,则可以输入新缓冲区的地址。如果该参数设置为NULL,则使用默认的旧缓冲区bufp。 |
| changed_lenp (OUT) | 新缓冲区的长度。 |
| csid (IN) | 缓冲区数据的字符集ID。 |
| csfrm (IN) | 缓冲区数据的字符集形式。csfrm参数有两个可能的非零值:SQLCS_IMPLICIT - 数据库字符集ID,SQLCS_NCHAR - NCHAR字符集ID,默认值为SQLCS_IMPLICIT。如果未指定csfrm,则使用默认值。 |
# 规格
该函数支持如下的调用方式:
| 参数 | 有效值 |
|---|---|
| csid | 0或者和当前客户端环境一致的字符集ID |
# 其他说明
无特殊说明。