ORACLE+CLOB+长字符串处理

wanjianjun 2008-10-23 10:22:22
昨天解决了delphi传CLOB类型字段。。。。但是新的问题又来了。。传到ORACLE里的字符串,超过4000的如果用字符串函数来处理的时候,被截断了,,比如INSTR()等函数,ORACLE的好多内部函数的参数都是定义的VARCHAR2,他只能取4000在内的字符传,,,,
高人请高见.....
...全文
596 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sailing0123 2008-10-23
  • 打赏
  • 举报
回复
长串?
这个字段是什么数据类型?

char 0-2000
varchar2 0-4000,

其它字段就得找相应的处理函数,
比如long、raw、long raw......



wanjianjun 2008-10-23
  • 打赏
  • 举报
回复
dbms_lob包里有substr(),INSTR()函数,但是对字符串处理的函数不是很全,,比如说想replace()、length()函数,
难道需要自己来写吗?
还有没有其他包?
sleepzzzzz 2008-10-23
  • 打赏
  • 举报
回复
试试用dbms_lob包.
oracledbalgtu 2008-10-23
  • 打赏
  • 举报
回复
使用dbms_lob包来处理clob对象啊!
dbms_lob有很多的函数和过程的。


[Quote=引用楼主 wanjianjun 的帖子:]
昨天解决了delphi传CLOB类型字段。。。。但是新的问题又来了。。传到ORACLE里的字符串,超过4000的如果用字符串函数来处理的时候,被截断了,,比如INSTR()等函数,ORACLE的好多内部函数的参数都是定义的VARCHAR2,他只能取4000在内的字符传,,,,
高人请高见.....
[/Quote]
wanjianjun 2008-10-23
  • 打赏
  • 举报
回复
现在问题来了,我用DBMS_LOB包里的GETLENGTH()函数获取长度,,
最大只返回了 18341 数...实际上我的字符串不至这么多的,我跟踪看过,,被截断了,,怎么会事啊...????????

其他DBMS_LOB.SUBSTR()函数读没有截断.....

不可能 GETLENGTH() 的最大上限值就是18341 吧????????????

其他我都解决了。.就这个问题了,,谁帮我解决了,就结帖..送分了。...

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧