使用在包中已定义为的类型
时Type ArrError Is Table Of Varchar2(20) Index By Binary_Integer;
并在存储过程中声明如下
arr_error(1) := PKG_TEST.arrerror(p_error);
导致以下错误PLS-00222: no function with name 'ARRERROR' exists in this scope
。在上面的语句中,p_error
的类型为VARCHAR2
使用通过CREATE TYPE
命令创建的全局类型时,此方法可以正常工作。
在CREATE PROCEDURE
块中使用上述初始化。
答案 0 :(得分:1)
如果您有SELECT LTRIM(TO_CHAR(COL1,'9999.990')) FROM table1;
Index by ...
如果您没有declare
TYPE ArrError IS TABLE OF VARCHAR2 (20) index by binary_integer;
arr_error ArrError;
p_error varchar2(20) := 'test';
p_error2 varchar2(20) := 'test2';
begin
arr_error(1) := p_error;
arr_error(2) := p_error2;
dbms_output.put_line('arr_error(1): ' || arr_error(1));
dbms_output.put_line('arr_error(2): ' || arr_error(2));
end;
,则需要调用构造函数:
index by ...