TYPE WYFARRAY IS ARRAY(10) OF VARCHAR2(200) NOT NULL;
PROCEDURE WILLIS1 (P_STR IN VARCHAR2, P_ARRAY OUT WYFARRAY, P_MSG OUT VARCHAR2, I OUT NUMBER); END;DELPHI 代码如下: SP1.CLOSE; SP1.UnPrepare; SP1.StoredProcName := 'WILLIS.WILLIS1'; sp1.Prepare; SP1.ParamByName('P_COUNT').AsString := 'WYF'; SP1.ExecProc;
但是为什么总是报错?
下面是PACKAGE BODY,只有一个PROCEDURE PACKAGE BODY WILLIS IS PROCEDURE WILLIS1 (P_STR IN VARCHAR2, P_ARRAY OUT WYFARRAY, P_MSG OUT VARCHAR2, I OUT NUMBER) is
BEGIN P_ARRAY:=WYFARRAY('1','1','1'); I:=1; P_ARRAY(1) :=P_STR||'1'; P_ARRAY(2) :=P_STR||'2'; EXCEPTION WHEN OTHERS THEN I:=0; P_MSG:=SUBSTR(SQLERRM,1,100); END WILLIS1;
TYPE WYFARRAY
IS
ARRAY(10) OF VARCHAR2(200) NOT NULL;
PROCEDURE WILLIS1
(P_STR IN VARCHAR2,
P_ARRAY OUT WYFARRAY,
P_MSG OUT VARCHAR2,
I OUT NUMBER);
END;DELPHI 代码如下:
SP1.CLOSE;
SP1.UnPrepare;
SP1.StoredProcName := 'WILLIS.WILLIS1';
sp1.Prepare;
SP1.ParamByName('P_COUNT').AsString := 'WYF';
SP1.ExecProc;
但是为什么总是报错?
PACKAGE BODY WILLIS
IS
PROCEDURE WILLIS1
(P_STR IN VARCHAR2,
P_ARRAY OUT WYFARRAY,
P_MSG OUT VARCHAR2,
I OUT NUMBER)
is
BEGIN
P_ARRAY:=WYFARRAY('1','1','1');
I:=1;
P_ARRAY(1) :=P_STR||'1';
P_ARRAY(2) :=P_STR||'2';
EXCEPTION
WHEN OTHERS THEN
I:=0;
P_MSG:=SUBSTR(SQLERRM,1,100);
END WILLIS1;