요약Microsoft 액세스 내에서 Oracle raise_application_error 사용자 지정 메시지를 가로채는 중입니까?
다음과 유사한 EXCEPTION 블록이있는 Oracle 프로 시저가 있습니다. raise_application_error의 출력을 다시 Microsoft Access로 전달하여 사용자에게 표시하려고합니다. 이 Oracle 프로 시저를 호출하는 Microsoft Access입니다.
EXCEPTION
WHEN e_invalidids THEN
raise_application_error (-20001,'Invalid ids in Upload Table.');
WHEN e_missingdate THEN
raise_application_error (-20002,'Missing Date in Upload Table.');
WHEN OTHERS THEN
raise_application_error (-20000,'An error was encountered - ' || SQLCODE || ' -ERROR- ' || SQLERRM);
END;
요청
내가 올바른 방향으로 지적되고 싶지 - 액세스 이내에이 오류를보고하는 방법 주어진. 이 솔루션은 기능에 오라클 절차를 설정하는 경우
- 나는 누군가가 제대로이 (. 즉, 값을 예외에 대한 트래핑 한 후 반환) 것을
을 수행하는 방법에 터치 싶습니다 배경 정보
Access 데이터베이스를 프런트 엔드로 사용하여 데이터를 Oracle 데이터베이스로 가져 오는 userland 도구를 작성했습니다. 데이터를 Excel에서 가져 와서 정리하고 수정하고 다양한 유효성 검사에 대해 테스트합니다. Access는 ADO를 사용하여 Oracle 서버의 테이블에 데이터를 쓰고 PL/SQL 프로 시저를 호출하여 처리합니다.
이 절차는 여러 가지 유효성 검사를 수행합니다 (일부는 복제본이고 일부는 DB에만 해당). 전달되면 각 레코드를 읽고 해석하고 정규화 된 테이블을 데이터베이스에 채 웁니다.
Access에서 이미 실행중인 유효성 검사의 양을 고려할 때 Oracle 프로 시저에서 발생한 오류는 실제로 기대하지 않습니다. 그렇지만 오류가 있으면 Access로 다시 전달하고 표시하고 싶습니다. 사용자에게 내가
나는이 포럼에서 검색, 구글 한 시도했습니다 무엇
. 내가 읽은 것 - raise_application_error는 호출 클라이언트에 출력을 반환합니다.하지만 OLE DB 공급자와 Oracle과 Access 사이에 ADO DB API가 있다고 가정하면 오류가 캡슐화되고 단순한 Pass/Fail이 리턴되고있는 것 같습니다. 실행] 호출에서 : 하나의 오류
oraConn.Execute "import_data"
oraErrText = ""
Set oraErrors = oraConn.Errors
For Each oraError In oraErrors
debug.print oraError.Number
debug.print oraError.Description
debug.print oraError.Source
debug.print oraError.SQLState
debug.print oraError.NativeError
Next
이상의 결과 : ORA-00900 : 유효하지 않은 SQL 문 다양한 일을 시도 2 주 지출 후