在 Sql Developer 调试器中初始化 Oracle 关联数组



我有一个关联数组声明,在我尝试调试的过程中,我需要在调试器中初始化数组,但我似乎无法找出正确的初始化字符串。

下面是调试器块:

DECLARE
  I_COMPONENTS_ARRAY PKG_CLASSIFICATION_MATRIX.T_NUMBER_ASSOC_ARRAY :=    T_NUMBER_ASSOC_ARRAY('544679','512477');
  I_QUESTION_ID NUMBER;
  I_ANSWER_BOOLEAN NUMBER;
  O_UPDATE_INFO sys_refcursor;
BEGIN
  --Modify the code to initialize the variable
  --I_COMPONENTS_ARRAY := NULL;
  --THESE ARE MY ATTEMPTS AT INITIALIZATION
  --I_COMPONENTS_ARRAY('1') := 544679; 
  --I_COMPONENTS_ARRAY('2') := 512477; 
  --I_COMPONENTS_ARRAY := PKG_CLASSIFICATION_MATRIX.T_NUMBER_ASSOC_ARRAY(544679,512477);
  I_QUESTION_ID := NULL;
  I_ANSWER_BOOLEAN := NULL;
  PKG_CLASSIFICATION_MATRIX.UPDATE_COLUMN(
     I_COMPONENTS_ARRAY => I_COMPONENTS_ARRAY,
     I_QUESTION_ID => I_QUESTION_ID,
     I_ANSWER_BOOLEAN => I_ANSWER_BOOLEAN,
     O_UPDATE_INFO => O_UPDATE_INFO
  );
 /* Legacy output: 
 DBMS_OUTPUT.PUT_LINE('O_UPDATE_INFO = ' || O_UPDATE_INFO);
 */ 
 :O_UPDATE_INFO := O_UPDATE_INFO; --<-- Cursor
 --rollback; 
END;

我做错了什么,还是无法以这种方式初始化数组?

下面是包规范中数组的声明:

TYPE T_NUMBER_ASSOC_ARRAY IS TABLE OF NUMBER INDEX BY PLS_INTEGER;

试试这个,

declaration of the array in the package spec:
TYPE T_NUMBER_ASSOC_ARRAY IS TABLE OF NUMBER INDEX BY PLS_INTEGER; 
 debugger block:
I_COMPONENTS_ARRAY PKG_CLASSIFICATION_MATRIX.T_NUMBER_ASSOC_ARRAY;
begin
I_COMPONENTS_ARRAY  (1) := 'Value1';
I_COMPONENTS_ARRAY  (2) := 'Value2';
.
.
.
I_COMPONENTS_ARRAY  (n) := 'ValueN';
end;

由于您的数组是按PLS_INTEGER索引的表格,因此您无法执行I_COMPONENTS_ARRAY("1")

最新更新