Oracle SQL Developer : 스크립트 실행, 오류시 계속

Sep 02 2020

SQL Developer 20.2를 사용하여 Oracle 12c 데이터베이스 업데이트를위한 배치 스크립트를 실행하고 있습니다. 스크립트 파일을 편집기 창으로 끌어다 놓은 다음 "스크립트 실행 (F5)"버튼을 누릅니다. 어떤 이유로 스크립트가 오류 (DDL 문-PL / SQL 함수의 명시 적 처리 없음)가 발생하면 프로그램이 중지됩니다.

예:

drop sequence my_seq;  -- sequence may not exist yet
create sequence my_seq
  start with 1
increment by 1
    minvalue 1
    maxvalue 9999999999
       cache 100
       cycle;

drop순서가 존재하지 않기 때문에 문은 오류를 공격 할 수 있습니다. SQL * Plus는이 오류를 무시하고 스크립트를 계속 실행하지만 SQL Developer가 실행을 중지하여 불완전한 패치 업데이트가 발생합니다.

어떡해?

답변

4 RobertoHernandez Sep 02 2020 at 18:50

SqlDeveloper는 기본적으로 오류를 발견하면 중지됩니다. 다음을 사용하여 해당 동작을 변경할 수 있습니다.

whenever sqlerror continue;
drop sequence my_seq;  -- sequence may not exist yet, in case of error continue
-- then we want to stop in error
whenever sqlerror exit failure;
create sequence my_seq
  start with 1
increment by 1
    minvalue 1
    maxvalue 9999999999
       cache 100
       cycle;

설명

  • whenever sqlerror continue 어떤 오류가 발생하더라도 계속하도록 스크립트에 지시합니다.
  • whenever sqlerror exit failure 오류 발생시 실행을 중지하고 종료하도록 스크립트에 지시합니다.

사용 가능한 명령 및 옵션에 대한 참조

sqlerror 때마다

thatjeffsmith Sep 02 2020 at 19:32

그런 일이 있어서는 안됩니다. 기본적으로 SQL Developer는 편집기의 전체 내용 또는 F5 키를 누를 때 선택한 내용을 실행합니다.

drop sequence my_seq;  

create sequence my_seq
  start with 1
increment by 1
    minvalue 1
    maxvalue 9999999999
       cache 100
       cycle;

F5

드롭이 실패한 것을 볼 수 있지만 CREATE로 계속됩니다. 이 모든 것이 한 번에 이루어졌습니다.