2017-12-08 19 views
0

쿼리가 실패하면 plsql 개발자가 다음 쿼리로 넘어가 모든 쿼리가 실행될 때까지 멈추지 말아야한다는 쿼리 패키지를 만들 수 있다는 것을 알고 싶습니다. 끝내면 어떤 쿼리가 실패했는지 표시해야합니다.하나의 쿼리가 실패한 경우 다음 SQL 쿼리로 건너 뛰기

예를 들어 5 개의 검색어 집합이 있습니다. 하나의 패키지가이 5 개의 쿼리를 포함하도록 만들었습니다. 이제 3 번째 쿼리가 실행 중에 실패하면 plsql 개발자가 멈추지 않아야하며 4 번째 쿼리로 건너 뛰고 모든 리밍 쿼리를 실행해야한다는 패키지를 만들고 싶습니다. 모든 쿼리가 끝나면 '3 번째 쿼리가 실패했습니다'라는 메시지가 표시됩니다.

+0

[Pl/Sql에서 Exception Handling과 비슷한 처리를 시도하십시오] (https://stackoverflow.com/questions/12527507/try-catch-like-exception-handling-in-pl-sql)이 대답은 . 나는 그것이 나를 위해 일했던 것을 사용했다 –

+0

나는 당신이 성명에 가야한다라고 생각한다. 와 함께 당신은 질의에 뛰어들 수 있습니다. 너 저걸 원하니? –

+0

'plsqldeveloper' 태그에서 오라클을 사용하고 있다고 가정 할 수 있습니까? –

답변

-2

try catch를 사용할 수 있습니다. |

여기


{sql_statement를 TRY BEGIN 구문이다 statement_block}
끝 TRY
시작 캐치
[{sql_statement | statement_block}]
END CATCH
[; ]

+0

이 쿼리를 사용하면 쿼리에 오류가 발생하여 롤백을 피할 수 있습니다 –

+0

plsql 개발자에서 작동합니까? – Paras

+0

로직이 이미 있습니다. 필요에 맞는 적절한 구문을 찾으십시오. –

0

쿼리를 매개 변수로 사용하려면 queryExecutor proecure를 만듭니다. 프로 시저의 시작은 하나의 테이블에 감사 로그를 가지고 있습니다. 완료 후/예외 블록은 감사 로그 항목을 완료/실패로 업데이트합니다. DBMS 스케줄러를 사용하여 queryExcutore를 호출하십시오. 각 쿼리는 독립적으로 실행됩니다.

while 루프를 사용하여 제출 된 모든 작업이 완료/실패 상태인지 여부를 확인합니다. 카운트가 제출 된 작업 수와 같아지기까지 기다립니다. 이 검사기를 실행할 수 있습니다. 일단 둘 다 루프에서 동일하게 종료됩니다.