尝试从数组中选择值时出错,如下面的代码
declare result CLOB;
myarray selected_pkg.num_array := selected_pkg.num_array();
begin
myarray.extend(3);
myarray(1) := 1; myarray(2) := 5; myarray(3) := 9;
EXECUTE IMMEDIATE 'select column_value from table (cast(myarray AS selected_pkg.num_array))';
COMMIT;
end;
ORA-00904:“MYARRAY”:标识符无效
请建议。 谢谢,艾伦
答案 0 :(得分:2)
SELECT
语句,则需要对结果执行某些操作。您需要一个游标FOR
循环,或者您需要BULK COLLECT
将结果放入不同的集合中,或者对结果执行某些操作。这样的事情会起作用(我不确定你是否想要对结果做什么)
SQL> create type num_arr is table of number;
2 /
Type created.
SQL> declare
2 l_nums num_arr := num_arr( 1, 2, 3, 7 );
3 begin
4 for i in (select column_value from table( l_nums ))
5 loop
6 dbms_output.put_line( i.column_value );
7 end loop;
8 end;
9 /
1
2
3
7
PL/SQL procedure successfully completed.
答案 1 :(得分:0)
此时不需要执行立即执行。 在proc。中使用fetch或循环游标