PL/ SQL 블록: STRUCTURE, 구문, ANONYMOUS 예
PL/SQL 블록이란 무엇입니까?
PL/SQL에서는 코드가 한 줄 형식으로 실행되지 않고 항상 블록이라는 단일 요소로 코드를 그룹화하여 실행됩니다. 이 튜토리얼에서는 이러한 블록에 대해 배우게 됩니다.
블록에는 PL/SQL과 SQL 명령어가 모두 포함됩니다. 이 모든 명령어는 한 번에 하나의 명령어를 실행하는 것이 아니라 전체적으로 실행됩니다.
블록 구조
PL/SQL 블록에는 코드가 그룹화되는 사전 정의된 구조가 있습니다. 다음은 PL/SQL 블록의 다양한 섹션입니다.
- 선언 섹션
- 실행 섹션
- 예외 처리 섹션
아래 그림은 다양한 PL/SQL 블록과 해당 섹션 순서를 보여줍니다.
선언 섹션
이는 PL/SQL 블록의 첫 번째 섹션입니다. 이 섹션은 선택적인 부분입니다. 블록에 필요한 변수, 커서, 예외, 서브프로그램, 프라그마 명령어, 컬렉션 등의 선언을 선언하는 섹션입니다. 다음은 이 부분의 몇 가지 추가 특징입니다.
- 이 특정 섹션은 선택 사항이며 선언이 필요하지 않은 경우 건너뛸 수 있습니다.
- 이 섹션은 PL/SQL 블록(있는 경우)의 첫 번째 섹션이어야 합니다.
- 이 섹션은 트리거 및 익명 블록에 대한 'DECLARE' 키워드로 시작됩니다. 다른 하위 프로그램의 경우 이 키워드는 존재하지 않습니다. 대신, 하위 프로그램 이름 정의 뒤의 부분이 선언 섹션을 표시합니다.
- 이 섹션 뒤에는 항상 실행 섹션이 와야 합니다.
실행 섹션
실행 부분은 그 안에 작성된 코드를 실제로 실행하는 주요 필수 부분입니다. 이후 PL / SQL 이 블록은 빈 블록이 될 수 없습니다. 즉, 적어도 하나의 유효한 실행 코드 라인이 있어야 합니다. 다음은 이 부분의 몇 가지 추가 특징입니다.
- 여기에는 PL/SQL 코드와 SQL 코드가 모두 포함될 수 있습니다.
- 여기에는 중첩된 블록으로 내부에 하나 이상의 블록이 포함될 수 있습니다.
- 이 섹션은 'BEGIN' 키워드로 시작됩니다.
- 이 섹션 뒤에는 'END' 또는 예외 처리 섹션(있는 경우)이 와야 합니다.
예외 처리 섹션
런타임에 발생하는 프로그램에서는 예외가 불가피하며 이를 처리하기 위해 Oracle 블록 단위로 예외 처리 섹션을 제공했습니다. 이 섹션에는 PL/SQL 문도 포함될 수 있습니다. 이는 PL/SQL 블록의 선택적 섹션입니다.
- 실행 블록에서 발생한 예외를 처리하는 섹션입니다.
- 이 섹션은 PL/SQL 블록의 마지막 부분입니다.
- 이 섹션의 제어는 실행 블록으로 돌아갈 수 없습니다.
- 이 섹션은 'EXCEPTION'이라는 키워드로 시작됩니다.
- 이 섹션 뒤에는 항상 키워드 'END'가 와야 합니다.
'END' 키워드는 PL/SQL 블록의 끝을 표시합니다.
PL/SQL 블록 구문
다음은 PL/SQL 블록 구조의 구문입니다.
DECLARE --optional <declarations> BEGIN --mandatory <executable statements. At least one executable statement is mandatory> EXCEPTION --optional <exception handles> END; --mandatory /
참고 : 블록 뒤에는 항상 블록 끝에 대한 정보를 컴파일러에 보내는 '/'가 와야 합니다.
PL/SQL 블록 유형
PL/SQL 블록은 주로 두 가지 유형으로 구성됩니다.
- 익명 블록
- 명명된 블록
익명 블록
익명 블록은 이름이 할당되지 않은 PL/SQL 블록입니다. 데이터베이스 개체로 서버에 저장되지 않으므로 동일한 세션에서 생성하고 사용해야 합니다.
데이터베이스에 저장할 필요가 없으므로 컴파일 단계가 필요하지 않습니다. 직접 작성 및 실행되며 컴파일 및 실행이 단일 프로세스에서 발생합니다.
다음은 익명 블록의 몇 가지 추가 특성입니다.
- 이러한 블록에는 지정된 참조 이름이 없습니다.
- 이러한 블록은 'DECLARE' 또는 'BEGIN' 키워드로 시작됩니다.
- 이러한 블록에는 참조 이름이 없으므로 나중에 사용할 목적으로 저장할 수 없습니다. 동일한 세션에서 생성 및 실행해야 합니다.
- 다른 명명된 블록을 호출할 수 있지만 참조가 없기 때문에 익명 블록을 호출할 수 없습니다.
- 이름이 지정되거나 익명으로 지정될 수 있는 중첩된 블록이 있을 수 있습니다. 또한 어떤 블록에도 중첩될 수 있습니다.
- 이러한 블록에는 블록의 세 섹션이 모두 포함될 수 있으며 실행 섹션은 필수이고 나머지 두 섹션은 선택 사항입니다.
명명된 블록
명명된 블록에는 구체적이고 고유한 이름이 있습니다. 이는 서버에 데이터베이스 개체로 저장됩니다. 데이터베이스 개체로 사용 가능하므로 서버에 존재하는 한 참조하거나 사용할 수 있습니다. 명명된 블록에 대한 컴파일 프로세스는 블록을 데이터베이스 객체로 생성하는 동안 별도로 발생합니다.
다음은 명명된 블록의 몇 가지 추가 특성입니다.
- 이 블록은 다른 블록에서 호출될 수 있습니다.
- 블록 구조는 'DECLARE' 키워드로 시작하지 않는다는 점을 제외하면 익명 블록과 동일합니다. 대신 컴파일러에게 데이터베이스 개체로 생성하도록 지시하는 'CREATE' 키워드로 시작됩니다.
- 이러한 블록은 다른 블록 내에 중첩될 수 있습니다. 중첩된 블록을 포함할 수도 있습니다.
- 명명된 블록은 기본적으로 두 가지 유형이 있습니다.
- 순서
- 함수
이러한 명명된 블록에 대해서는 이후 튜토리얼의 "절차" 및 "함수" 항목에서 자세히 알아보겠습니다.
요약
이 튜토리얼을 마치면 PL/SQL 블록과 그 유형, 블록의 여러 섹션과 그 사용법을 알게 될 것입니다. 명명된 PL/SQL 블록에 대한 자세한 설명은 이후 튜토리얼에서 다룰 것입니다.