我想遍历一个字符串列表并执行一个函数/过程,每个字符串作为参数.
@H_403_4@set serveroutput on;
begin
FOR r IN ('The','Quick','brown','fox')
LOOP
dbms_output.put_line( r );
END LOOP;
end;
我假设可能有这种模式.
解决方法
只是为了完整性,一个纯粹的PL / sql解决方案.
@H_403_4@sql> set serveroutput on
sql>
sql> declare
2 my_array sys.dbms_debug_vc2coll
3 := sys.dbms_debug_vc2coll('The','fox');
4 begin
5 for r in my_array.first..my_array.last
6 loop
7 dbms_output.put_line( my_array(r) );
8 end loop;
9 end;
10 /
The
Quick
brown
fox
PL/sql procedure successfully completed.
sql>
这使用了preredred sys.dbms_debug_vc2coll数据类型,它具有相当大的定义……
@H_403_4@sql> desc sys.dbms_debug_vc2coll sys.dbms_debug_vc2coll TABLE OF VARCHAR2(1000) sql>……所以,就像加里说的那样,你可能希望宣布自己的.特别是如果你的琴弦很短并且你有很多.