Q&A

  • 오라클 패키지에 있는 프러시저의 Output 변수를 읽는법 아시는 분
델파이6, 7 버전의 BDE TQuery 혹은 TStoredProc을 사용하여
오라클 데이터베이스의 패키지 안에 구현된 프러시저의 Output 변수를 읽는 법을 알고 싶습니다.
아래 제가 해본 소스를 적어 놓겠습니다.
고수님들의 답변 기다리겠습니다.

  * 프로시저의 선언형
   PROCEDURE GetAudioClipID_Proc(
      AudioID_OUT    OUT   VARCHAR2,
      AudioType_IN   IN    VARCHAR2
   )

  * 프로시저를 이용한 경우
     (이 경우 GetAudioClipID_Proc 구성요소가 정의되어야 합니다. 라는 오라클 에러 발생)

   StoredProc1.Close;
   StoredProc1.Params.BeginUpdate;
   StoredProc1.Params.Clear;
   StoredProc1.StoredProcName := 'AUDIOFILE_PACK.GetAudioClipID_Proc';

   StoredProc1.Params.CreateParam(ftString, 'AudioID_OUT', Output);
   StoredProc1.Params.CreateParam(ftString, 'AudioType_IN', ptInput);

   StoredProc1.Params.EndUpdate;

   StoredProc1.Params.ParamByName('AudioType_IN').AsString := 'SS';

   StoredProc1.ExecProc;


  * TQuery를 이용한 경우
    ( 이 경우 Output 값을 읽을 수 없습니다.)  
   Query1.Active := false;
   Query1.SQL.Text := 'BEGIN AUDIOFILE_PACK.GetAudioClipID_Proc(:RESULT, ''SS''); END;';

   Query1.Params.BeginUpdate;
   Query1.ParamByName('RESULT').ParamType := ptOutput;
   Query1.Params.EndUpdate;

   Query1.ParamByName('RESULT').AsString := '          ';
   Query1.ExecSQL;
1  COMMENTS