如何在嵌套表类型中选择多个ID?

时间:2017-05-28 16:15:44

标签: sql oracle plsql

我制作游戏的DB,我需要制作ID ='x'的ID表(向量)。 ID是数字。

create or replace procedure add_items
is
  TYPE ID_TAB IS TABLE OF NUMBER(20);
  id_eq_weapon ID_TAB;
begin
  select id into id_eq_weapon from EQ where TYPE='weapon'; --ERROR HERE
  for [..]

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您正在填充集合,但您的代码使用填充标量变量的语法。试试这个:

select id 
bulk collect into id_eq_weapon 
from EQ where TYPE='weapon'; 
  

“如何在选择后检查值?dbms_output.put_line(id_eq_weapon);没有显示任何内容”

这是一个集合:您需要引用带索引的条目,例如

for idx in id_eq_weapon.first().. id_eq_weapon.last()
loop
    dbms_output.put_line(id_eq_weapon(idx));
end loop;  

您可能会从阅读有关PL / SQL集合的Oracle文档中受益。 Find out more