|
저는 오라클의 패키지와 저장 프로시저를 이용해서 데이터를 추가, 수정, 삭제를 합니다.
*** 질문 하나 ***
저장 프로시저를 사용하는경우 저장 프로시저 이름을 선택하면 매개변수가 자동으로 생성됩니다.
패키지를 사용하여 하는 경우 프로시저 선택시 프로시저 종류에 나오지 않아서 직접 입력하는데
매개변수가 자동으로 생성이 안됩니다.
혹시 매개변수를 자동으로 생성되게 하려면 어떻게 하시는지 아는 분 있나요?
*** 질문 둘 ***
저장 프로시저의 매개변수를 생성하고 매개변수의 값을 넣어 프로시저를 실행합니다.
오라클의 저장 프로시저의 매개변수가 없거나 매개변수 타입이 변경되는 경우
다음과 같은 Error 메시지를 발생시킵니다.
Project Manager.exe raised exception class EDBEngineError with message ‘General SQL error.’
ORA-06550 line1, column 7:
PLS-00306 wrong number or types of arguments in call to ‘SP_ISYSTEM’
ORA-06550 line1, column 7:
PL/SQL : Statement ignored’. Process stopped. Use Step or Run to continue.
이 Debugging 에러가 나기 전에 예외처리를 해주고 싶은데 어떻게 해야하나요?
// 저장 프로시저의 매개변수를 생성하는 부분
sp_ISystem->DatabaseName = "System";
sp_ISystem->StoredProcName = "PKG_SYSTEM.SP_ISYSTEM";
sp_ISystem->Params->CreateParam(ftString, "p_SystemID", ptInput);
sp_ISystem->Params->CreateParam(ftString, "p_SystemName", ptInput);
// 프로시저를 실행하는 부분
try
{
sp_ISystem->ParamByName("p_SystemID")->AsString = edtSystemID->Text;
sp_ISystem->ParamByName("p_SystemName")->AsString = edtSystemName->Text;
sp_ISystem->Prepare();
sp_ISystem->ExecProc();
}
catch(Exception &E)
{
ShowMessage(E.Message);
return;
}
|