【问题标题】:splitting a column value in sql在sql中拆分列值
【发布时间】:2013-03-25 00:37:21
【问题描述】:

我在表中有一个列是 varchar2 的 varray。获取此列值后,我想处理此可变数组列的每个元素。如何将检索到的列拆分为单个值。

【问题讨论】:

标签: sql oracle


【解决方案1】:

这可能会对您有所帮助:

CREATE TABLE t (id NUMBER, val VARCHAR2(20));
insert into t values (1,'val1');
INSERT INTO t VALUES (2,'val2');
INSERT INTO t VALUES (3, 'val3');

SET serveroutput ON
DECLARE
type my_type IS varray(200) OF VARCHAR2(200);
obj1 my_type := my_type();
BEGIN
     FOR i IN 1..3 LOOP
          obj1.extend;
          SELECT val INTO obj1(i) FROM t WHERE id = i;
     end loop;

     FOR j IN obj1.first..obj1.last LOOP
          dbms_output.put_line(obj1(j));
     END LOOP;
END;

结果:

val1
val2
val3

或者您可以对嵌套表列使用以下内容:

  FOR REC IN
     (SELECT * FROM TABLE(c)    --or  select * from table(cast(c as object_type_tab))
     )
     LOOP
          dbms_output.put_line(rec.id || ', ' || rec.val);
     END LOOP;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多