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

Pio*_*ych 1 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;
  ...
Run Code Online (Sandbox Code Playgroud)

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

PL/SQL: ORA-00942 in line with INSERT.
Run Code Online (Sandbox Code Playgroud)

Jus*_*ave 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;
Run Code Online (Sandbox Code Playgroud)