大对象接口
限制
在实现clob、blob两种类型时由于数据源内核类型的限制大部分功能在驱动中实现,存在很多限制及不足的情况,故在使用中做出以下限制,同时建议用户非必要不使用此功能。部分接口例如OCILobRead,OCILobWrite等,参数包含无符号整数类型,若传入负数会引发不可预期的问题,请按照类型传入非负数。
在数据绑定时暂时只支持OCIDefineByPos的绑定。
在获取数据是分为轮询和回调,本次只支持轮询。
bfile的字段bfile类型长度不能查过1024,否则会被截取。如“bfile('d_file', 'dad.data')” 不能超过1024。
blob和clob两个只支持简单基表查询, 不支持复杂类型查询,不支持一张表里多列lob场景, 同时不支持clob和blob类型出现在where条件里。
blob的限制需要read和wrtie部分功能。
由于bfile的内核实现必须要open之后才能允许对应的读写操作,故lob的实现(bfile、clob、blob)时需要open之后才能对应的读写等操作。
BFILE类型暂时依赖于vastbase数据库2.2.10及以后的版本。
内核权限要求
- 需要用户创建目录的权限。
- 需要用户执行dbms_lob包的权限。
- 需要用户执行utl_raw包的权限。
OCILobOpen
功能描述
以指定模式打开 LOB (内部或外部)。
功能说明
以指定模式打开 LOB (内部或外部)。
接口信息
函数/过程
OCILobOpen语法如下:
sword OCILobOpen ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
ub1 mode );
参数的解释如下:
- svchp (IN):服务上下文句柄。
- errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- locp(IN/OUT):要打开的 LOB。定位器可以引用内部或外部 LOB。
- mode(IN):打开 LOB 或 BFILE 的模式。在 Oracle8i 或更高版本中,LOB 的有效模式是:
- OCI_LOB_READONLY:类型CLOB、BLOB、BFILE有效。
- OCI_LOB_READWRITE:类型CLOB、BLOB有效。
其他说明
无
OCILobGetLength
功能描述
获取 LOB 的长度。
功能说明
此函数必须用于大于4GB 的 LOB。
接口信息
函数/过程
OCILobGetLength 语法如下:
sword OCILobGetLength2 ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
oraub8 *lenp );
参数的解释如下:
- svchp (IN):服务上下文句柄。
- errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- locp(IN):唯一引用 LOB 的 LOB 定位器。对于内部 LOB,此定位器必须是从 svchp 指定的服务器获取的定位器。
- lenp (OUT):它是 LOB 中的字节数。
其他说明
无
OCILobRead
功能描述
将调用指定的 LOB 或 BFILE 的一部分读入缓冲区。
功能说明
不推荐使用此函数。使用 OCILobRead2()。
接口信息
函数/过程
OCILobRead 语法如下:
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):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- locp(IN):唯一引用 LOB 或 BFILE 的 LOB 或 BFILE 定位器。此定位器必须是从 svchp 指定的服务器获取的定位器。
- amtp (IN/OUT):Amtp 中的值是以字节为单位的长度。
- offset (IN):这是从 LOB 值开始的绝对偏移量,以字节为单位。
- bufp (IN/OUT):指向一个缓冲区的指针,该缓冲区中的文件被读入。
- bufl (IN):缓冲区的长度(以八位为单位)。这个值不同于 CLOB 和 NCLOB 的 amtp 值(csfrm = SQLCS_NCHAR) ,因为amtp参数是以字符为单位指定的,而 bufl 参数是以字节为单位指定的(暂不支持)。
- ctxp (IN):回调函数的上下文指针。可以为 NULL(暂不支持)。
- cbfp (IN):一个回调函数,可以注册为针对每个部分调用该函数。如果这是 NULL,那么对于每个片段返回 OCI _ 需要 _ DATA。回调函数必须返回 OCI _ CONTINUE 才能继续读取。如果返回任何其他错误代码,则终止 LOB 读取(暂不支持)。
- ctxp (IN):回调函数的上下文。可以为 NULL(暂不支持)。
- bufp (IN/OUT):块的缓冲指针(暂不支持)。
- lenp (IN):当前块的长度(以字节为单位)(暂不支持)。 piecep (IN):哪一部分:OCI _ FIRST _ PIECE,OCI _ NEXT _ PIECE,或者 OCI _ LAST _ PIECE(暂不支持)。
- csid (IN):缓冲区数据的字符集 ID。如果该值为0,则 csid 设置为客户机的 NLS _ LANG 或 NLS _ CHAR 值,具体取决于 csfrm 的值。除非服务器和客户端具有相同的设置,否则绝不假定它是服务器字符集(暂不支持)。
- csfrm (IN):缓冲区数据的字符集形式。 csfrm 参数必须与 LOB 的类型一致。Csfrm 参数有两个可能的非零值:SQLCS _ IMPLICIT-数据库字符集 ID、SQLCS _ NCHAR-NCHAR 字符集 ID、默认值为 SQLCS _ IMPLICIT。如果未指定 csfrm,则假定为默认值(暂不支持)。
其他说明
无
OCILobWrite
功能描述
将缓冲区写入 LOB。
功能说明
此函数必须用于大于4GB 的 LOB。
接口信息
函数/过程
OCILobWrite 语法如下:
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):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- locp(IN):唯一引用 LOB 或 BFILE 的 LOB 或 BFILE 定位器。此定位器必须是从 svchp 指定的服务器获取的定位器。
- amtp (IN/OUT):要写入数据库的字节数。(以字节为单位)。
- offset (IN):在输入时,它是从 LOB 值开始的绝对偏移量。对于字符 LOB,它是从 LOB 开始的字符数; 对于二进制 LOB,它是字节数。第一个位置是1。如果使用流(通过轮询或回调) ,请在第一次调用中指定偏移量; 在随后的轮询调用中,将忽略偏移量参数。使用回调时,没有偏移量参数。
- bufp (IN):指向写入块的缓冲区的指针。缓冲区中数据的长度被假定为 buflen 中传递的值。即使使用轮询方法将数据分段写入,当调用此调用时,bufp 也必须包含 LOB 的第一部分。如果提供了回调,则 bufp 不能用于提供数据或错误结果。
- buflen (IN):缓冲区中数据的长度(以字节为单位)。当使用 char_amtp 参数以字符的形式指定金额,并且 buflen 参数以字节的形式指定时,该值与 CLOB的 char_amtp值不同。
- piece (IN):正在编写缓冲区的哪一部分。此参数的
- OCI_ONE_PIECE
- OCI_FIRST_PIECE
- OCI_NEXT_PIECE
- OCI_LAST_PIECE
- ctxp (IN):回调函数的上下文指针。可以为 NULL。
- cbfp (IN):一种回调,可以注册为在分段写入中为每个片段调用的回调。如果为 NULL,则使用标准轮询方法。回调函数必须返回 OCI_CONTINUE 才能继续写操作。如果返回任何其他错误代码,LOB 写操作将终止。回调接受以下参数(暂不支持):
- ctxp (IN):回调函数的上下文。可以为 NULL(暂不支持)。
- bufp (IN/OUT):块的缓冲指针(暂不支持)。
- lenp (IN):当前块的长度(以字节为单位)(暂不支持)。
- piecep (IN):哪一部分(暂不支持):
- OCI_ONE_PIECE
- OCI_FIRST_PIECE
- OCI_NEXT_PIECE
- OCI_LAST_PIECE
- csid (IN):缓冲区数据的字符集 ID。如果该值为0,则 csid 设置为客户机的 NLS_LANG 或 NLS_CHAR 值,具体取决于 csfrm 的值。除非服务器和客户端具有相同的设置,否则绝不假定它是服务器字符集(暂不支持)。
- csfrm (IN):缓冲区数据的字符集形式。 csfrm 参数必须与 LOB 的类型一致。csfrm 参数有两个可能的非零值:SQLCS_IMPLICIT-数据库字符集 ID、SQLCS_NCHAR-NCHAR 字符集 ID、默认值为 SQLCS_IMPLICIT。如果未指定 csfrm,则假定为默认值(暂不支持)。
其他说明
无
OCILobClose
功能描述
关闭先前打开的 LOB 或 BFILE。
功能说明
关闭先前打开的 LOB 或 BFILE。
接口信息
函数/过程
OCILobClose() 语法如下:
sword OCILobClose ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp );
参数的解释如下:
- svchp (IN):服务上下文句柄。
- errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- locp(IN/OUT):要关闭的 LOB。定位器可以引用内部或外部 LOB。
其他说明
无
OCILobAssign
功能描述
给一个LOB对象赋值。
功能说明
给一个LOB对象赋值为另一个LOB对象。
接口信息
函数/过程
OCILobAssign语法如下:
sword OCILobAssign ( OCIEnv *envhp,
OCIError *errhp,
const OCILobLocator *src_locp,
OCILobLocator **dst_locpp );
参数的解释如下:
- envhp (IN):环境句柄。
- errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- src_locp(IN):源 LOB对象,用于给目标LOB对象赋值。
- dst_locpp(IN/OUT):目标LOB对象,需要赋值的LOB对象。
OCILobIsEqual
功能描述
判断LOB对象是否相等。
功能说明
判断两个LOB对象是否相等。
接口信息
函数/过程
OCILobIsEqual 语法如下:
sword OCILobIsEqual ( OCIEnv *envhp,
const OCILobLocator *x,
const OCILobLocator *y,
boolean *is_equal );
参数的解释如下:
- envhp (IN):环境句柄。
- x(IN):用来比较的LOB定位器。
- y(IN):用来比较的LOB定位器。
- is_equal(OUT):是否相等。
OCILobIsOpen
功能描述
测试 LOB 或 BFILE 是否打开。
功能说明
测试 LOB 或 BFILE 是否打开。
接口信息
函数/过程
OCILobIsOpen 语法如下:
sword OCILobIsOpen ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
boolean *flag );
参数的解释如下:
- svchp (IN):服务上下文句柄。
- errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- locp(IN):指向正在检查的 LOB 定位器的指针。定位器可以引用内部或外部 LOB。
- flag (OUT):如果内部 LOB 是打开的,或者 BFILE 是使用输入定位器打开的,则返回 TRUE。如果不是,返回 FALSE。
其他说明
无
OCILobLocatorIsInit
功能描述
测试以查看是否初始化了给定的 LOB 或 BFILE 定位器。
功能说明
测试以查看是否初始化了给定的 LOB 或 BFILE 定位器。
接口信息
函数/过程
OCILobLocatorIsInit 语法如下:
sword OCILobLocatorIsInit ( OCIEnv *envhp,
OCIError *errhp,
const OCILobLocator *locp,
boolean *is_initialized );
参数的解释如下:
- envhp (IN/OUT):服务上下文句柄。
- errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- locp(IN):正在测试的 LOB 或 BFILE 定位器。
- is_initialized (OUT):如果给定的 LOB 或 BFILE 定位器已初始化,则返回 TRUE; 如果未初始化,则返回 FALSE。
其他说明
无
OCILobTrim
功能描述
将 LOB 值截断为较短的长度。
功能说明
不推荐使用此函数。请使用 OCILobTrim2()。
接口信息
函数/过程
OCILobTrim 语法如下:
sword OCILobTrim ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
ub4 newlen );
参数的解释如下:
- svchp (IN):服务上下文句柄。
- errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- locp(IN): LOB 定位器。对于内部 LOB,此定位器必须是从 svchp 指定的服务器获取的定位器。
- newlenp (OUT):在输出时,如果 LOB 不为 NULL,则为 LOB 的长度。
其他说明
无
OCILobTrim2
功能描述
将 LOB 值截断为较短的长度。
功能说明
此函数必须用于大于4GB 的 LOB。
接口信息
函数/过程
OCILobTrim2 语法如下:
sword OCILobTrim2 ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
oraub8 newlen );
参数的解释如下:
- svchp (IN):服务上下文句柄。
- errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- locp(IN/OUT): LOB 定位器。此定位器必须是从 svchp 指定的服务器获取的定位器。
- newlen (IN):LOB 值的新长度,它必须小于或等于当前长度。对于字符 LOB,它是字符数。
其他说明
无
OCILobRead2
功能描述
将调用指定的 LOB 或 BFILE 的一部分读入缓冲区。
功能说明
此函数必须用于大于4GB 的 LOB。
接口信息
函数/过程
OCILobRead2 语法如下:
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):服务上下文句柄。
- errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- locp(IN): LOB 定位器。此定位器必须是从 svchp 指定的服务器获取的定位器。
- byte_amtp (IN/OUT):从数据库中读取的字节数。
- char_amtp (IN/OUT):读入用户缓冲区的最大字符数(暂不支持)。
- offset (IN):从 LOB 值开始的绝对偏移量的字节数。从1开始。如果轮询 ,请在第一次调用中指定偏移量; 在随后的轮询调用中,将忽略偏移量参数。
- bufp (IN/OUT):指向一个缓冲区的指针,该缓冲区中的文件被读入。分配的内存的长度被假定为 bufl。
- bufl (IN):缓冲区的长度(以八位为单位)。这个值不同于 CLOB 和 NCLOB 的 amtp 值(csfrm = SQLCS_NCHAR) ,因为 amtp 参数是以字符为单位指定的,而 bufl 参数是以字节为单位指定的(暂不支持)。
- piece (IN):OCI_ONE_PIECE-调用从不假设轮询。如果指示的数量大于缓冲区长度,那么缓冲区将被尽可能多地填充。对于轮询,第一次传递OCI_FIRST_PIECE,在随后的调用中传递 OCI_NEXT_PIECE。
- ctxp (IN):回调函数的上下文指针。可以为 NULL(暂不支持)。
- cbfp (IN):一个回调函数,可以注册为针对每个部分调用该函数。如果这是 NULL,那么对于每个片段返回 OCI_NEED_DATA。回调函数必须返回 OCI_CONTINUE 才能继续读取。如果返回任何其他错误代码,则终止 LOB 读取(暂不支持)。
- ctxp (IN):回调函数的上下文。可以为NULL(暂不支持)。
- bufp (IN/OUT):块的缓冲指针(暂不支持)。
- lenp (IN):当前块的长度(以字节为单位)(暂不支持)。
- piecep (IN):有效值(暂不支持):
- OCI_FIRST_PIECE
- OCI_NEXT_PIECE
- OCI_LAST_PIECE
- changed_bufpp (OUT):如果回调函数希望使用新的缓冲区来读取下一块,那么它可以放置新缓冲区的地址。如果此参数设置为 NULL,则使用默认的旧缓冲区 bufp(暂不支持)。
- changed_lenp (OUT):新缓冲区的长度(如果提供的话)(暂不支持)。
- csid (IN):缓冲区数据的字符集 ID。如果该值为0,则 csid 设置为客户机的 NLS_LANG 或 NLS_CHAR 值,具体取决于 csfrm 的值。除非服务器和客户端具有相同的设置,否则绝不假定它是服务器字符集(暂不支持)。
- csfrm (IN):缓冲区数据的字符集形式。 csfrm 参数必须与 LOB 的类型一致。csfrm参数有两个可能的非零值:SQLCS_IMPLICIT-数据库字符集 ID、SQLCS_NCHAR-NCHAR 字符集 ID、默认值为 SQLCS_IMPLICIT。如果未指定csfrm,则假定为默认值。
其他说明
无
OCILobCreateTemporary
功能描述
创建临时LOB对象。
功能说明
无。
接口信息
函数/过程
OCILobCreateTemporary 语法如下:
sword OCILobCreateTemporary(OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
ub2 csid,
ub1 csfrm,
ub1 lobtype,
boolean cache,
OCIDuration duration)
参数的解释如下:
- svchp (IN):服务上下文句柄。
- errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
- locp(IN): LOB 定位器。此定位器必须是从 svchp 指定的服务器获取的定位器。
- csid (IN):缓冲区数据的字符集 ID。如果该值为0,则 csid 设置为客户机的 NLS_LANG 或 NLS_CHAR 值,具体取决于 csfrm 的值。除非服务器和客户端具有相同的设置,否则绝不假定它是服务器字符集(暂不支持)。
- csfrm (IN):缓冲区数据的字符集形式。 csfrm 参数必须与 LOB 的类型一致。csfrm参数有两个可能的非零值:SQLCS_IMPLICIT-数据库字符集 ID、SQLCS_NCHAR-NCHAR 字符集 ID、默认值为 SQLCS_IMPLICIT。如果未指定csfrm,则假定为默认值。
- lobtype(IN):要创建的 LOB 类型。有效值包括:
- OCI_TEMP_BLOB:用于临时 BLOB 的 OCI_TEMP_BLOB。
- OCI_TEMP_CLOB:用于临时 CLOB 的 OCI_TEMP_CLOB。
cache (IN):如果应该将临时 LOB 读入缓存,则传递 TRUE; 如果不应该,则传递 FALSE。NOCACHE 功能的默认值为 FALSE。(暂不支持)
duration (IN):临时 LOB 的持续时间。以下是有效值:(暂不支持)
- OCI_DURATION_SESSION
- OCI_DURATION_CALL
其他说明
无
OCILobFreeTemporary
功能描述
释放一个临时LOB。
功能说明
释放一个临时LOB。
接口信息
函数/过程
语法如下:
sword OCILobFreeTemporary( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp);
参数的解释如下:
svchp (IN/OUT):服务上下文句柄。
errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
locp(IN/OUT): 定位符,它唯一的指定了一个需要被释放的LOB。
其他说明
无
OCILobAppend
功能描述
将一个LOB追加到另一个LOB。
功能说明
将一个LOB追加到另一个LOB。
接口信息
函数/过程
语法如下:
sword OCILobAppend(OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *dst locp,
OCILobLocator *src locp);
参数的解释如下:
svchp (IN):服务上下文句柄。
errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
dst_locp(IN/OUT):唯一引用目标LOB的内部 LOB定位器。此定位器必须是从svchp指定的服务器获得的定位器。
srg_lop(IN/OUT):内部LOB定位器,唯一引用源LOB。此定位器必须是从svchp 指定的服务器获得的定位器。
其他说明
无
OCILobCharSetId
功能描述
从LOB定位器获取字符集ID。
功能说明
从LOB定位器获取字符集ID。
接口信息
函数/过程
语法如下:
sword OCILobCharSetId(OCIEnv *envhp,
OCIError *errhp,
Const OCILobLocator *locp,
ub2 *csid);
参数的解释如下:
envhp (IN):环境句柄。
errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
locp(IN):唯一引用LOB的内部 LOB定位器。对于内部LOB,此定位器必须是从svchp指定的服务器获得的定位器。
srg_lop(IN/OUT):内部LOB定位器,唯一引用源LOB。此定位器必须是从svchp 指定的服务器获得的定位器。
csid(OUT):输入LOB定位器的数据库字符集ID。如果输入定位符用于BLOB或BFILE,则csid设置为 0,因为没有二进制1ob 或二进制文件的字符集概念。
其他说明
无
OCILobCopy
功能描述
将一个 LOB的全部或部分复制到另一个 LOB。
功能说明
将一个 LOB的全部或部分复制到另一个 LOB。
接口信息
函数/过程
语法如下:
sword OCILobCopy ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *dst_locp,
OCILobLocator *src_locp,
oraub8 amount,
oraub8 dst_offset,
oraub8 src_offset );
参数的解释如下:
svchp (IN/OUT): 服务上下文句柄。
errhp(IN/OUT): 出现错误时,可以传递给 OCIRRORGET( )以获取诊断信息的错误句柄。
dst_locp(IN): 唯一引用目标LOB 的内部LOB定位器。此定位器必须是从svchp指定的服务器获得的定位器。
src_locp(IN): 内部LOB定位器,唯一的引用源LOB。此定位器必须是从svchp 指定的服务器获得的定位器。
amount(IN): cob或nclob 的字符数或要从源LOB复制到目标LOB的 blob的字节数。
dst_offset(IN): 这是目标LOB 的绝对偏移量。对于字符LOB,它是从LOB开头开始写入的字符数。对于二进制LOB,它是从LOB开头开始写入的字节数。偏移量从1开始。
src_offset (IN): 这是源LOB的绝对偏移量。对于字符LOB,它是从LOB开始的字符数。对于二进制1ob,它是字节数。从1开始。
其他说明
无
OCILobDisableBuffering
功能描述
禁用输入定位器的 LOB缓冲。
功能说明
该函数目前仅做接口兼容,并未实现。
接口信息
函数/过程
语法如下:
sword OCILobDisableBuffering ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp );
参数的解释如下:
svchp (IN/OUT): 服务上下文句柄。
errhp(IN/OUT): 出现错误时,可以传递给 OCIRRORGET( )以获取诊断信息的错误句柄。
locp(IN): 唯一引用LOB或BFILE 的LOB或BFILE 定位器。此定位器必须是从svchp指定的服务器获得的定位器。
其他说明
无
OCILobIsTemporary
功能描述
判断定位器是否指向临时 LOB。
功能说明
判断定位器是否指向临时 LOB。
接口信息
函数/过程
语法如下:
sword OCILobIsTemporary(OCIEnv *envhp,
OCIError *errhp,
OCILobLocator *locp,
boolean *is_temporary);
参数的解释如下:
svchp (IN): 服务上下文句柄。
errhp(IN/OUT): 出现错误时,可以传递给 OCIRRORGET( )以获取诊断信息的错误句柄。
locp(IN/OUT): 要判断的LOB。
is_temporary(OUI): 如果 LOB定位器指向临时LOB,则返回 TRUE;如果没有,则为 FALSE。
其他说明
无
OCILobEnableBuffering
功能描述
接口只做兼容,无实际作用。
功能说明
接口只做兼容,无实际作用。
接口信息
函数/过程
语法如下:
sword OCILobEnableBuffering(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp);
参数的解释如下:
输入:
svchp (IN): 服务上下文句柄。
errhp(IN): 错误句柄。
locp(OUT): 唯一引用LOB的内部LOB定位器。
输出:
- sword(OUT): 函数是否成功执行。
其他说明
无
OCILobErase
功能描述
从指定的偏移量开始擦除内部LOB 数据的指定部分。此函数仅对内部LOB有效,不允许使用BFILE。
功能说明
从指定的偏移量开始擦除内部LOB 数据的指定部分。此函数仅对内部LOB有效,不允许使用BFILE。
接口信息
函数/过程
语法如下:
sword
OCILobErase(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
ub4 *amount, ub4 offset)
参数的解释如下:
输入:
svchp (IN): 服务上下文句柄。
errhp(IN): 错误句柄。
locp(IN/OUT): 唯一引用LOB的内部LOB定位器。
amount(IN/OUT): 要擦除的LOB 的字节数。在IN上,该值表示要擦除的字符数或字节数。在OUT 上,该值标识擦除的字节数。
offset(IN/OUT): LOB 字节数,从要从中开始擦除数据的LOB值的开头开始的绝对偏移量。从1开始。
输出:
- sword(OUT): 函数是否成功执行。
其他说明
无
OCILobFileClose
功能描述
在服务器的文件系统上关闭以前打开的BFILE文件。
功能说明
在服务器的文件系统上关闭以前打开的BFILE文件。
接口信息
函数/过程
语法如下:
sword
OCILobFileClose (OCISvcCtx *svchp, OCIError *errhp,
OCILobLocator *filep);
参数的解释如下:
输入:
svchp (IN): 服务上下文句柄。
errhp(IN): 错误句柄。
filep(IN/OUT): 指向BFILE定位器的指针,该定位器引用要关闭的 BFILE。
输出:
- sword(OUT): 函数是否成功执行。
其他说明
无
OCILobFileOpen
功能描述
在服务器的文件系统上打开 BFILE 以进行只读访问。
功能说明
在服务器的文件系统上打开 BFILE 以进行只读访问。
接口信息
函数/过程
语法如下:
sword
OCILobFileOpen (OCISvcCtx *svchp, OCIError *errhp,
OCILobLocator *filep, ub1 mode)
参数的解释如下:
输入:
svchp (IN): 服务上下文句柄。
errhp(IN): 错误句柄。
filep(IN/OUT): 要打开的BFILE。如果定位器未引用 BFILE,则为错误。
输出:
- sword(OUT): 函数是否成功执行。
其他说明
无
OCILobFlushBuffer
功能描述
刷新LOB缓冲区的内容。
功能说明
刷新LOB缓冲区的内容。
接口信息
函数/过程
语法如下:
sword OCILobFlushBuffer ( OCISveCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
ub4 flag );
参数的解释如下:
输入:
svchp (IN): 服务上下文句柄。
errhp(IN): 当出现错误时,您可以传递给 OCIEorGet()以获取诊断信息的错误句柄。
locp (IN/OUT): 唯一引用 LOB 的内部定位器。
flag(IN): 当flag设置为 OCI_LOB_BUFFER_FREE,lob 缓冲区在调用后会被刷新。
输出:
sword(OUT): 函数是否成功执行。
目前内核并未支持0CILobEnableBuffer 接口的实现,所以该接口也只做了兼容性实现,没有实际功能实现。
其他说明
无
OCILobGetChunkSize
功能描述
获取LOB内存块的大小。
功能说明
获取LOB内存块的大小。
接口信息
函数/过程
语法如下:
sword OCILobGetChunkSize ( OCISveCtx *svchp,
OCIEror *errhp,
OCILobLocator *locp,
ub4 *chunk_size );
参数的解释如下:
输入:
svchp (IN): 服务上下文句柄。
errhp(IN): 当出现错误时,您可以传递给 OCIEorGet()以获取诊断信息的错误句柄。
locp (IN/OUT): 唯一引用 LOB 的内部定位器。
chunk_size(OUT): chunk_size参数是以BLOB、CLOB和NCLOB的字节为单位返回的。
输出:
sword(OUT): 函数是否成功执行。
目前内核并未支持0CILobEnableBuffer 接口的实现,所以该接口也只做了兼容性实现,没有实际功能实现。
其他说明
无
OCILobCharSetId
功能描述
从LOB定位器获取字符集ID。
功能说明
从LOB定位器获取字符集ID。
接口信息
函数/过程
语法如下:
sword OCILobCharSetId(OCIEnv *envhp,
OCIError *errhp,
Const OCILobLocator *locp,
ub2 *csid);
参数的解释如下:
envhp (IN):环境句柄。
errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
locp(IN):唯一引用LOB的内部 LOB定位器。对于内部LOB,此定位器必须是从svchp指定的服务器获得的定位器。
srg_lop(IN/OUT):内部LOB定位器,唯一引用源LOB。此定位器必须是从svchp 指定的服务器获得的定位器。
csid(OUT):输入LOB定位器的数据库字符集ID。如果输入定位符用于BLOB或BFILE,则csid设置为 0,因为没有二进制1ob 或二进制文件的字符集概念。
其他说明
无
OCILobCharSetForm
功能描述
获取 LOB 定位符的字符集形式(如果有的话)。CLOB 仅支持返回 SQLCS_IMPLICIT。
功能说明
获取 LOB 定位符的字符集形式(如果有的话)。CLOB 仅支持返回 SQLCS_IMPLICIT。
接口信息
函数/过程
语法如下:
sword OCILobCharSetForm ( OCIEnv *envhp, OCIError *errhp,
const OCILobLocator *locp, ubl *csfrm)
参数的解释如下:
输入
env(IN/OUT):作为空指针传递。
err(IN/OUT):NCI错误句柄。如果出现错误,则记录在 err 中,此函数返回NCI_ERROR。通过调用NCIErrorGet()可以获得诊断信息。
locp(IN):用于获取字符集形式的 LOB 定位器。
csfrm(IN):输入LOB 定位符的字符集形式。如果输入定位符 ocp 用于 BLOB或BFILE,则 csfrm将被设置为0,因为对于二进制 lob 和 BFILE 没有字符集的概念。调用者必须为 csfm(ub1)分配空间。csfim 参数有两个可能的非零值:
SOLCS_IMPLICIT -数据库字符集 ID,默认值。
SOLCS_NCHAR-NCHAR 字符集 ID。(不支持)
输出
- sword (OUT):函数是否成功执行。
其他说明
无
OCIDurationEnd
功能描述
为临时 lob 结束用户 duration。
功能说明
该接口目前仅作兼容性,没有具体实现。
接口信息
函数/过程
语法如下:
sword OCIDurationEnd ( OCIEnv *env,
OCIError *err,
const OCISvcCtx *svc,
OCIDuration duration);
参数的解释如下:
env (IN):服务器环境变量信息。
svc (IN):服务上下文句柄。
err(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。
dur(OUT):一个最近使用 OCIDurationBegin 创建的 duration 。
其他说明
无
OCIDurationBegin
功能描述
为临时 lob 开始用户 duration。
功能说明
该接口目前仅作兼容性,没有具体实现。
接口信息
函数/过程
语法如下:
sword OCIDurationEnd ( OCIEnv *env,
OCIError *err,
const OCISvcCtx *svc,
OCIDuration parent,
OCIDuration *dur);
参数的解释如下:
env (IN):服务器环境变量信息。
svc (IN):服务上下文句柄。
err(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。
parent(IN):要启动的 duration 的父级。
dur(OUT):新创建的用户 duration。
其他说明
无
OCILobFileCloseAll
功能描述
关闭所有正在打开的 bfile 类型文件。
功能说明
关闭所有正在打开的 bfile 类型文件。该接口不会关闭 blob 和 clob 类型文件。
接口信息
函数/过程
语法如下:
sword OCIobFileCloseAll ( OCISvcCtx *svchp, OCIError *errhp);
参数的解释如下:
svc (IN):服务上下文句柄。
errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。
其他说明
无
OCILobFileExist
功能描述
检测 bfile 类型文件在服务器上是否存在。
功能说明
检测 bfile 类型文件在服务器上是否存在。
接口信息
函数/过程
语法如下:
sword OCILobFileExists (OCISvcCtx *svchp, OCIError *errhp,
OCILobLocator *filep,
boolean *flag);
参数的解释如下:
svc (IN):服务上下文句柄。
errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。
filep(IN):LOB 定位器。
flag(OUT):检测 bfile 类型文件在服务器上是否存在的结果。
其他说明
无
OCILobFileGetName
功能描述
获取 OCILobLocator 类型内存储的 lob 名字信息。
功能说明
获取 OCILobLocator 类型内存储的 lob 名字信息。
接口信息
函数/过程
语法如下:
sword OCILobFileGetName (OCIEnv *envhp, OCIError *errhp,
const OCILobLocator *filep,
OraText *dir_alias, ub2 *d_length,
OraText *filename, ub2 *f_length);
参数的解释如下:
svc (IN):服务上下文句柄。
errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。
filep(IN):LOB 定位器。
dir_alias(OUT) :目录信息。
d_length (OUT) :dir_alias 长度。
filename(OUT):文件名。
f_length (OUT) :filename 长度。
其他说明
无
OCILobFileIsOpen
功能描述
检测 bfile 类型文件是否打开。
功能说明
检测 bfile 类型文件是否打开。
接口信息
函数/过程
语法如下:
sword OCILobFileIsOpen ( OCISvcCtx *svchp, OCIError *errhp,
OCILobLocator *filep,
boolean *flag);
参数的解释如下:
svc (IN):服务上下文句柄。
errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。
filep(IN):LOB 定位器。
flag(OUT) :检测 bfile 类型文件是否打开的结果。
其他说明
无
OCILobFileSetName
功能描述
设置 OCILobLocator 类型内存储的 lob 名字信息。
功能说明
设置 OCILobLocator 类型内存储的 lob 名字信息。
接口信息
函数/过程
语法如下:
sword OCILobFileSetName ( OCIEnv *envhp, OCIError *errhp,
OCILobLocator **filepp,
const OraText *dir_alias, ub2 d_length,
const OraText *filename, ub2 f_length);
参数的解释如下:
svc (IN):服务上下文句柄。
errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。
filepp(IN/OUT):LOB 定位器。
dir_alias (IN):目录信息。
d_length (IN) :dir_alias 长度。
filename (IN):文件名。
f_length (IN) :filename 长度。
其他说明
无
OCILobLoadFromFile
功能描述
从 bfile 中加载 lob。
功能说明
从 bfile 中加载 lob。
接口信息
函数/过程
语法如下:
sword OCILobLoadFromFile ( OCISvcCtx *svchp, OCIError *errhp,
OCILobLocator *dst_locp,
OCILobLocator *src_filep,
ub4 amount, ub4 dst_offset,
ub4 src_offset);
参数的解释如下:
svc (IN):服务上下文句柄。
errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。
dst_locp(OUT):目标 LOB 定位器,需要为 bloc/clob 类型。
src_filep (IN):来源LOB 定位器,需要为 bfile 类型。
amount (IN):lob 最大长度。
dst_offset (IN) :目标 LOB 定位器偏移量。
src_offset (IN):来源 LOB 定位器偏移量。
其他说明
无
OCILobLocatorAssign
功能描述
将一个 OCILobLocator 类型的值赋值给另一个。
功能说明
将一个 OCILobLocator 类型的值赋值给另一个,如果源 LOB 定位器引用临时 LOB,则目标也会变成临时 LOB。源和目标在概念上是不同的临时 LOB。
接口信息
函数/过程
语法如下:
sword OCILobLocatorAssign ( OCISvcCtx *svchp, OCIError *errhp,
const OCILobLocator *src_locp,
OCILobLocator **dst_locpp);
参数的解释如下:
svc (IN):服务上下文句柄。
errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。
src_locp(IN):来源LOB 定位器。
dst_locpp (IN/OUT) :目标LOB 定位器。
其他说明
无
OCILobWriteAppend
功能描述
对一个 lob 文件进行追加写。
功能说明
对一个 lob 文件进行追加写。
接口信息
函数/过程
语法如下:
sword OCILobWriteAppend ( OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *lobp,
ub4 *amtp, void *bufp, ub4 bufl, ubl piece,
void *ctxp, OCICallbackLobWrite cbfp, ub2 csid,
ubl csfrm);
参数的解释如下:
svc (IN): 服务上下文句柄。
errhp(IN/OUT): 出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。
lobp(IN): LOB 定位器。
amtp (IN):要追加写的长度。
bufp (IN): 要追加写的内容所在缓存。
bufl (IN): 要追加写的内容所在缓存长度。
其他参数无意义,请填写 0,NULL,NULL,0,0。
其他说明
无