자율 학습/학습

[Oracle] PL/SQL BEGIN ~ END 한 번에 여러 쿼리 실행하기

60cod 2022. 9. 19. 14:44

INSERT ALL INTO 라는 좋은 구문이 있지만

PK 제약 조건과 시퀀스(NEXTVAL) 때문에 한 번에 넣을 수가 없을 때..

나눠 작성한 쿼리들을 한 번에 실행하게 하는 구문이 있다.

 

출처: https://kindloveit.tistory.com/26

 

 

 

BEGIN ~ END

 

PL/SQL의 블록 구조

 

전체가 하나의 블록이고 구성요소는 아래와 같다.

DECLARE
선언부(옵션, 생략가능)
변수나 상수를 정의


BEGIN
실행부 (필수, BEGEN-END)
로직 수행 (일반 SQL문, 조건문, 반복문 등)


EXCEPTION
예외 처리부(옵션, 생략 가능)


END;

 

 

 

PK나 시퀀스가 걸리는 것끼리 나눠서 넣었다.

실행해보니 'PL/SQL 프로시저가 성공적으로 완료되었습니다.' 라는 메시지가 뜨고

데이터 잘 들어간 것 확인했고 커밋까지 완료함!

 

 

+ 근데 xml 에 넣고 실행하려 하니 안 되더라고.. 강사님께 여쭤보니 세미콜론 때문에 터진다는데.. 구글링해보면 다른 사람은 잘 쓰는 거 같던데..? 좀 알아봐야 할 듯..