0
我有一個varray爲varchar2的表中有一列。獲取此列值後,我想處理此varray列的每個元素。如何將檢索到的列分割成單獨的值。在sql中拆分列值
我有一個varray爲varchar2的表中有一列。獲取此列值後,我想處理此varray列的每個元素。如何將檢索到的列分割成單獨的值。在sql中拆分列值
這可以幫助你:
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;
HTTP的可能重複:// stackoverflow.com/questions/1742728/mysql-explode-split-input-to-stored-procedure – gerrytan 2013-03-25 04:12:21