ora_01704:string literal too long错误

xym1223 2011-07-28 09:20:43
SELECT TRIM(SUBSTR(STR,INSTR(STR, ',', 1, level) + 1,INSTR(STR, ',', 1, level + 1) - INSTR(STR, ',', 1, level) - 1)) AS CARDNUM
FROM (SELECT ',' || 'Vcardnum'|| ',' AS STR FROM dual)
CONNECT BY level <= LENGTH(STR) - LENGTH(REPLACE(STR, ',', '')) - 1;
如果Vcardnum = 1000668854,1000672802,一千张卡号,就会报ora_01704:string literal too long
有办法解决么
...全文
360 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
caoleione 2011-07-28
  • 打赏
  • 举报
回复
可将字符串转化成数组,然后通过SQl实现
首先写个公共函数把字符串转化成数组 然后通过CAST函数 把数组转化成Table类型
字符串转化成数组可参考http://www.cnblogs.com/Scarface/archive/2011/07/04/2097185.html
xym1223 2011-07-28
  • 打赏
  • 举报
回复
用查询语句有办法实现么?
秋雨飘落 2011-07-28
  • 打赏
  • 举报
回复
这个CARDNUM值长度超过4K就会报这个错误,
你这个值查询出来想做什么用,
可以通过存储过程来实现,不让他直接显示出来

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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