目前有一张源表,里面有几千条类似这样的数据
"5-4",21,benben,"[ a, 509, 0, 29 ]"
"5-9",20,birdegg,"[ c,7,5,3,2,a, 509, 0, 29 ]"5-后面的数字不固定,为结果表的最大列数,不知道能否实现如下功能
select '5-4',21,'benben','a', 509, 0, 29,null,null,null,null,null from dual
select '5-9',20,birdegg,'c',7,5,3,2,'a', 509, 0, 29 from dual显示这样子的数据数千行插入新表,因为不确定有多少行,所以用5-4那行数据用NULL补足  首先要找到字符串里面最大列数,然后对后面的影号里进行分割,用NULL补足插入结果表~不知道自定义函数能否实现。。急。。 

解决方案 »

  1.   


     恩,是我的问题,学习了。。希望能到这样的数据,当然源表里如果有5-12 那列数还要再增加drop table temp
    create table temp (a1 varchar(100),a2 varchar(100),a3 varchar(100),a4 varchar(100),a5 varchar(100),a6 varchar(100),a7 varchar(100),a8 varchar(100),a9 varchar(100),a10 varchar(100),a11 varchar(100),a12 varchar(100))
    insert into temp 
    select '5-4',21,'benben','a', 509, 0, 29,null,null,null,null,null from dual
    insert into temp 
    select '5-9',20,'birdegg','c',7,5,3,2,'a', 509, 0, 29 from dual
      

  2.   

    使用sqlldr嘛 ,以,分割,表多建些列。