나는 이것을 잠시 동안 알아 내려고 노력했다. 나는 도움을 청할 때가되었다고 생각한다. 나는 스키마 프로비저닝 스크립트를 만들고 있는데, 스크립트 출력을 추가하고 싶다. 오류 처리. 아이디어는 스크립트 출력 창이 모든 잡음이없는 주요 메시지 만 보여줄 것이라는 것입니다. 이 (- 우리가 오라클 버전 : 필요한 힌트, 레드 게이트 힌트) 파악했다 나는 일반적으로 단지 Red Gate's SQL Packager이 할 것 SQL 서버 세계에서 오라클 스크립트에서의 에러 처리
Create Temporary Error Table
Begin Transaction
-- begin work block
Print "Doing some types of work"
-- do work here
If Error and Active Transactions > 0 Then Rollback
If Active Transactions = 0 Then Insert Error In Temp Error Table and Start Another Transaction
-- end work block
-- once all all work complete
If Active Transactions > 0 Then Commit Transactions
. 비슷한 것을 얻기 위해 Oracle을 어디서부터 사용해야할까요?
_ 스키마 프로비저닝 스크립트를 작성 중입니다. _ 테이블 등을 작성/변경한다는 의미 인 경우; 롤백은 도움이되지 않습니다. Oracle 내에서 DDL 명령은 현재 트랜잭션이 미해결 상태 인 경우 트랜잭션을 커밋하고 트랜잭션 내에서 실행되고 성공하면 커밋되며 실패하면 롤백합니다. 따라서 DDL 명령을 실행 한 후 미해결 트랜잭션이 없습니다.유일한 예외는 DB가 DDL 명령을 실행하기로되어 있음을 알지 못하고 구문 분석 오류가있는 경우이며, 첫 번째 암시 적 커밋을 수행하지 않으며 DDL에 대한 트랜잭션을 시작하지 않습니다. 이것은 SQL Server와 매우 다릅니다. –
내 의견은 답을 제공하지 않습니다. 단지 당신이 알고 있거나 아는 적이없는 함정을 지적하기위한 것입니다. –
@Shannon - 감사합니다. DDL이 포함 된보다 광범위한 범위의 트랜잭션을 수행 할 수 없다는 점이 정말 짜증납니다. 문제가 발생하면 데이터베이스를 절반 구운 상태로 두어 프로비저닝 프로세스에서 오류 처리를 훨씬 어렵게 만듭니다. –