如何在delphi中讀取storeProcedure返回的數組?

解决方案 »

  1.   

    PACKAGE WILLIS IS
      
       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;
      
    但是为什么总是报错?
      

  2.   

    下面是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;