create or replace procedure P_var is type test_type is varray(15) of varchar2(2); test test_type:=test_type('A','B','C','D','E','F','G','H','J','K','L'); begin for i in 1..test.count loop dbms_output.put_line(test(i)); end loop; end P_var; SQL> exec p_var;
A B C D E F G H J K L
那如果建function 的话,该怎么写呢?
CREATE OR REPLACE FUNCTION test RETURN VARCHAR2 IS TYPE varary IS VARRAY(300) OF VARCHAR2(12); ary varary ;BEGIN ary := varary('A','B','C','D','E','F','G','H','J','K','L'); for i in 1..ary.count loop dbms_output.put_line(ary(i)); end loop; RETURN 'OK'; END;
type test_type is varray(15) of varchar2(2);
test test_type:=test_type('A','B','C','D','E','F','G','H','J','K','L');
begin
for i in 1..test.count loop
dbms_output.put_line(test(i));
end loop;
end P_var;
SQL> exec p_var;
A
B
C
D
E
F
G
H
J
K
L
RETURN VARCHAR2
IS
TYPE varary IS VARRAY(300) OF VARCHAR2(12);
ary varary ;BEGIN
ary := varary('A','B','C','D','E','F','G','H','J','K','L');
for i in 1..ary.count loop
dbms_output.put_line(ary(i));
end loop;
RETURN 'OK';
END;