如何在oracle中将值插入到map中?

时间:2014-02-24 12:04:09

标签: sql oracle map

如何将值插入地图?

CREATE OR REPLACE PROCEDURE ZC_FILL_WNIOSKI IS
  TYPE MAP_ARRAY IS TABLE OF NUMBER INDEX BY VARCHAR2(30);
  WNIOSKI_MAP MAP_ARRAY;
  BEGIN

  INSERT INTO WNIOSKI_MAP
     SELECT ID_WNIOSEK_ORG, ID_WNIOSEK FROM ZC_WNIOSKI;
  ...

当前版本给出了以下错误:

PL/SQL: ORA-00942 in line with INSERT.

1 个答案:

答案 0 :(得分:5)

你没有像这样INSERT进入PL / SQL集合。

您可以从表格中BULK COLLECT进入您的收藏集,但之后您只能从表格中选择一列。假设你的意图是选择键和值,你可以做类似的事情(假设我已经猜到哪个列是字符键,哪个是数值)

FOR i IN (SELECT ID_WNIOSEK_ORG, ID_WNIOSEK FROM ZC_WNIOSKI)
LOOP
  WNIOSKI_MAP( i.ID_WNIOSEK_ORG ) := ID_WNIOSEK;
END LOOP;