oracle – PL / SQL:从表中选择一个assoc数组
发布时间:2020-12-12 13:48:21 所属栏目:百科 来源:网络整理
导读:我试图在一个查询中选择数据到一个pl / sql关联数组.我知道我可以用一个硬编码的键来做到这一点,但是我想看看是否有一些方法可以引用另一列(关键列). DECLARETYPE VarAssoc IS TABLE OF varchar2(2) INDEX BY varchar2(3);vars VarAssoc;BEGINSELECT foo,bar
我试图在一个查询中选择数据到一个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; 我得到一个错误,说foo必须在我这样做时被声明.有没有办法在单个查询中创建我的关联数组,还是需要回到FOR循环? 只要阅读你对APC答案的评论,这听起来像是你自己想出来的.但是我想我会把答案放在未来的搜索者身上.这是更简单的代码,但没有使用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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |