暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OCI编程高级篇(十一) 其他一些LOB操作函数

原创 tomcoding 2025-08-16
224

访问www.tomcoding.com网站,学习Oracle内部数据结构,详细文档说明,下载Oracle的exp/imp,DUL,logminer,ASM工具的源代码,学习高技术含量的内容。

针对LOB的操作除了写和读函数之外,还有其他一些常用的函数,我们来介绍一下。

1. LOB擦除函数,对一段LOB数据进行擦除,CLOB填充为空格,BLOB填充为0。函数原型和参数如下。

sword OCILobErase2 ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
oraub8 *amount,
oraub8 offset );

svchp是一个输入参数,OCI服务上下文句柄。

errhp是一个输入/输出参数,错误句柄,返回错误码和错误信息文本。

locp是一个输入/输出参数,LOB定位符,与要擦除的LOB关联。

amount是一个输入/输出参数,要擦除LOB数据的数量,CLOB以字符计算,BLOB以字节计算。

offset是一个输入参数,要擦除数据的起始位置,从1开始计算,CLOB以字符为单位,BLOB以字节为单位。

2. 得到LOB的长度函数,原型和参数如下。

sword OCILobGetLength2 ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
oraub8 *lenp );

svchp是一个输入参数,OCI服务上下文句柄。

errhp是一个输入/输出参数,错误句柄,返回错误码和错误信息文本。

locp是一个输入参数,要获取长度的LOB定位符。

lenp是一个输出参数,返回LOB的长度,CLOB以字符计算,BLOB以字节计算。

3. 判断一个LOB是否打开了,注意这里是判断LOB是否打开,不是定位符是否打开,如果一个定位符先与一个LOB1关联,然后打开,再与一个LOB2关联,也打开,如果后面把定位符关闭了,那么只是关闭了LOB2,LOB1仍然是打开的,还是需要把定位符与LOB1关联,然后可以关闭LOB1。

sword OCILobIsOpen ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
boolean *flag );

svchp是一个输入参数,OCI服务上下文句柄。

errhp是一个输入/输出参数,错误句柄,返回错误码和错误信息文本。

locp是一个输入参数,要测试是否打开的LOB定位符。

flag是一个输出参数,如果返回TRUE表示LOB已打开,返回FALSE表示LOB未打开。

4. 截断LOB函数,把LOB数据截断为一个新的长度,只能往短了截。

sword OCILobTrim2 ( OCISvcCtx *svchp,
OCIError *errhp,
OCILobLocator *locp,
oraub8 newlen );

svchp是一个输入参数,OCI服务上下文句柄。

errhp是一个输入/输出参数,错误句柄,返回错误码和错误信息文本。

locp是一个输入/输出参数,要截断的LOB定位符。

newlen是一个输入参数,LOB的新长度,CLOB以字符计算,BLOB以字节计算。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论