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
有办法解决么
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
有办法解决么
解决方案 »
- 求资料:如何用Oracle的OLAP工具一步步建立Cube
- 一张表有几个字段id,name,XX,XX。里面有10000条数据,怎么查出名字相同的人的姓名来?
- 为何在WHERE查询语句之后使用自定义函数会被优化成HASH JOIN?
- 请教达人 一个大数据量的删除的时间问题
- 批量插入数据导致数据库服务挂死.
- 还是多表查询的问题!
- oracle PL/SQL 的 char 判断
- 高手进来!关于多个查询合并
- 备份还原的问题~~
- 安装oracle第三张盘的时候,出现OracleOra90Agent出错,错误是259:没有可用的数据,请教?
- 在哪个初始化文件中能看到NLS相关的信息
- 造成ORA-01843 无效的月份
你这个值查询出来想做什么用,
可以通过存储过程来实现,不让他直接显示出来
首先写个公共函数把字符串转化成数组 然后通过CAST函数 把数组转化成Table类型
字符串转化成数组可参考http://www.cnblogs.com/Scarface/archive/2011/07/04/2097185.html