我要取出一串数据的id,然后把这串id以数组的形式写入另一个表的一个字段中,怎么写? 然后我要使用这个字段的时候怎么一个一个的取出来? 小白求教

解决方案 »

  1.   

    SYS_CONNECT_BY_PATH
    适用范围:8i,9i,10g及以后版本
    SELECT t.id id, MAX(substr(sys_connect_by_path(t.col, ','), 2)) str
    FROM (SELECT id, col, row_number() over(PARTITION BY id ORDER BY col) rn
    FROM t_row_str) t
    START WITH rn = 1
    CONNECT BY rn = PRIOR rn + 1
    AND id = PRIOR id
    GROUP BY t.id;
    适用范围:10g及以后版本
    SELECT t.id id, substr(sys_connect_by_path(t.col, ','), 2) str
    FROM (SELECT id, col, row_number() over(PARTITION BY id ORDER BY col) rn
    FROM t_row_str) t
    WHERE connect_by_isleaf = 1
    START WITH rn = 1
    CONNECT BY rn = PRIOR rn + 1
    AND id = PRIOR id;
    5.5
    WMSYS.WM_CONCAT
    适用范围:10g及以后版本
    这个函数预定义按','分隔字符串,若要用其他符号分隔可以用,replace将','替换。
    SELECT id, REPLACE(wmsys.wm_concat(col), ',', '/') str
    FROM t_row_str
    GROUP BY id;本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/you_tube/archive/2009/04/10/4059251.aspx
      

  2.   

    WMSYS.WM_CONCAT 
    适用范围:10g及以后版本
    这个最省,一步搞定
      

  3.   

    使用oracle的array或索引表类型(type t1 is table of varchar2(2000) index by binary_integer;)。
      

  4.   

    SYS_CONNECT_BY_PATH 
    上面不是列出来了么