ora-01489报错字符串过长SQL codeselect seq,name, substr(nam,2,nvl(instr(nam,/,2)-2,length(nam))) n
ora-01489报错字符串过长
- SQL code
select seq, name, substr(nam,2,nvl(instr(nam,'/',2)-2,length(nam))) name1, (case when lv < 3 then null else substr(nam,instr(nam,'/',1,lv - 1) + 1,instr(nam,'/',1,lv) - instr(nam,'/',1,lv - 1) - 1) end) name2 from (select m.*, level lv, SYS_CONNECT_BY_PATH(name, '/') nam, CONNECT_BY_ROOT parent_seq seq1 from m connect by prior seq = parent_seq) where seq1 is null order by seq;
执行这段程序
ora-01489报错字符过长
用to_clob还是同样报错
- SQL code
select seq, name, substr(nam,2,nvl(instr(nam,'/',2)-2,length(nam))) name1, (case when lv < 3 then null else substr(nam,instr(nam,'/',1,lv - 1) + 1,instr(nam,'/',1,lv) - instr(nam,'/',1,lv - 1) - 1) end) name2 from (select m.*, level lv, to_clob(SYS_CONNECT_BY_PATH(name, '/')) nam, CONNECT_BY_ROOT parent_seq seq1 from m connect by prior seq = parent_seq) where seq1 is null order by seq;
我没其他办法了
我就是想找出树的路径,然后把路径按照‘/'分成多个字段
[解决办法]
反正就是字符串连接得过长。才会出现这个错误。
但从你的代码来看,应该是有什么语法错误,才造成目前的这个错误。
可以贴一下你用到的表结构,实测一下。
[解决办法]
初步看貌似没啥错误 报错在哪行呢?
