2014-12-04 80 views
0

我有一个关联数组声明,在我尝试调试的过程中,我需要在调试器中初始化该数组,但我似乎无法弄清楚正确初始化字符串在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; 

回答

1

试试这个,

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; 

因为你的阵列是NUMBER INDEX BY PLS_INTEGER表,你不能这样做I_COMPONENTS_ARRAY(” 1')

相关问题