我试图在一个查询中选择数据到一个pl / sql关联数组.我知道我可以用一个硬编码的键来做到这一点,但是我想看看是否有一些方法可以引用另一列(关键列).
DECLARE TYPE VarAssoc IS TABLE OF varchar2(2) INDEX BY varchar2(3); vars VarAssoc; BEGIN SELECT foo,bar INTO vars(foo) FROM schema.table; END;
只要阅读你对APC答案的评论,这听起来像是你自己想出来的.但是我想我会把答案放在未来的搜索者身上.
原文链接:https://www.f2er.com/oracle/205539.html这是更简单的代码,但没有使用BULK COLLECT的速度优势.只需循环遍历查询返回的行,并单独设置关联数组中的元素.
DECLARE TYPE VarAssoc IS TABLE OF varchar2(200) INDEX BY varchar2(30); vars VarAssoc; BEGIN FOR r IN (SELECT table_name,tablespace_name FROM user_tables) LOOP vars(r.table_name) := r.tablespace_name; END LOOP; dbms_output.put_line( vars('JAVA$OPTIONS') ); END;