ora-01489报错字符串过长解决思路

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;

 
我没其他办法了 


我就是想找出树的路径,然后把路径按照‘/'分成多个字段

[解决办法]
反正就是字符串连接得过长。才会出现这个错误。

但从你的代码来看,应该是有什么语法错误,才造成目前的这个错误。

可以贴一下你用到的表结构,实测一下。
[解决办法]
初步看貌似没啥错误 报错在哪行呢?