💡PL/SQL
PL/SQL의 정식 명칭은 Oracle's Procedural Language extension to SQL이다.
PL/SQL은 기존의 ANSI-SQL에 절차 지향 언어 기능을 추가한 것이다.
우리가 쓰는 SQL은 문장 단위의 실행만을 할 수 있었다. 하나의 INSERT와 UPDATE가 위아래에 있다면 우연히 코딩한 위치가 비슷할 뿐, 서로 독립적인 것이었다.
PL/SQL은 ANSI-SQL의 확장팩(변수, 제어 흐름(제어문), 객체(메서드) 정의)으로서, 이러한 SQL의 한계를 해소한다.
프로시저
프로시저(Procedure)는 메서드, 함수 등으로 구성된 순서가 있는 명령어의 집합이다.
모든 PL/SLQ 구문은 프로시저 내에서만 작성/동작이 가능하다. 이때 프로시저가 아닌 영역은 ANSI-SQL 영역이다.
1. 익명 프로시저
[Oracle] PL/SQL 익명 프로시저
💡익명 프로시저 declare -- 선언부 begin -- 구현부 end; declare부터 begin까지 선언부, begin부터 end까지 구현부이다. serveroutput on set serveroutput on; set serveroutput off; dbms.output이 보이게 하려면 먼저 위 구문
isaac-christian.tistory.com
익명 프로시저는 일회용 코드를 작성할 때 사용한다.
2. 실명 프로시저
[Oracle] PL/SQL 실명 프로시저
💡명령어 실행 처리 과정 클라이언트 컴퓨터에는 SQL Developer, DBeaver 같은 프로그램이 있고, 오라클 서버 컴퓨터에는 실제 프로세스가 동작하는 메모리와 오라클이 저장되어 있는 저장장치가 있
isaac-christian.tistory.com
실명 프로시저는 데이터베이스 객체 형태로 저장하여 재호출 하기 위해 사용한다.
💡PL/SQL 프로시저 구조
- DECLARE
- BEGIN
- EXCEPTION
- END
PL/SQL 프로시저는 4개의 블럭(키워드)로 구성되어 있다.
이는 오라클에서 메소드를 만들 때 사용하는 구문이다.
DECLARE
- 선언부
프로시저 내에서 사용할 변수, 객체 등을 선언하는 영역이다.
만들 변수나 객체가 없을 경우 생략이 가능하다.
BEGIN ~ END
- 실행부 (구현부)
BEGIN과 END는 동시에 쓰인다.
구현된 코드를 가지는 영역(메서드의 body 영역)이다.
생략이 불가능하다.
구현된 코드는 주로 ANSI-SQL구문과 PL/SQL 구문(연산, 제어 등)을 섞어서 작성하게 된다.
EXCEPTION
- 예외처리부
예외가 없을 경우 생략이 가능하다.
catch절의 역할만을 하며, BEGIN~END가 try역할을 한다.
제어 흐름이 생기다보니 중간에 작업이 중단되어서 다른 구문에 영향을 줄 수 있기 때문에 try-catch문처럼 예외처리를 하는 기능이 있다.
[Oracle] PL/SQL 예외 처리 (Exception Handling)
💡예외 처리 실행부에서(being~end) 발생하는 예외를 처리하는 블록(exception 블록) 이다. 예외 발생 --ORA-06502: PL/SQL: numeric or value error: character string buffer too small DECLARE vname varchar2(5); BEGIN dbms_output.put_
isaac-christian.tistory.com
Oracle 예외 처리에 대해서는 위 글을 참고하도록 한다.
💡PL/SQL 자료형
PL/SQL 자료형은 ANSI-SQL과 동일하다고 할 수 있을 정도로 비슷하다.
NUMBER, VARCHAR2, DATE 등을 사용한다.
[Oracle] SQL 키워드, 식별자, 자료형
💡SQL 키워드와 식별자 대소문자 구분 -- 대소문자 구분 X select * from tabs; SELECT * FROM tabs; -- 대소문자 구분 O select * from tabs where table_name = 'JOBS'; select * from tabs where table_name = 'jobs'; SQL은 키워드와 식
isaac-christian.tistory.com
ANSI-SQL의 자료형에 대해서는 위 글을 참고하도록 하자.
변수 선언
변수명 자료형 [not null] [default 값];
모든 PL/SQL 구문은 아무 곳에나 적어서 실행할 수 없다.
앞서 프로시저 내에서만 작성할 수 있다고 했다. 변수를 만들기 전에 프로시저를 만들어야 한다.
💡PL/SQL 연산자
PL/SQL 연산자는 ANSI-SQL과 거의 동일하지만, 대입 연산자에 차이가 있다.
대입 연산자
ANSI-SQL 대입 연산자
update table set column = '값';
PL/SQL 대입 연산자
변수 := '값';
PL/SQL 대입 연산자에는 앞에 콜론(:)이 붙는다.
💡PL/SQL
PL/SQL의 정식 명칭은 Oracle's Procedural Language extension to SQL이다.
PL/SQL은 기존의 ANSI-SQL에 절차 지향 언어 기능을 추가한 것이다.
우리가 쓰는 SQL은 문장 단위의 실행만을 할 수 있었다. 하나의 INSERT와 UPDATE가 위아래에 있다면 우연히 코딩한 위치가 비슷할 뿐, 서로 독립적인 것이었다.
PL/SQL은 ANSI-SQL의 확장팩(변수, 제어 흐름(제어문), 객체(메서드) 정의)으로서, 이러한 SQL의 한계를 해소한다.
프로시저
프로시저(Procedure)는 메서드, 함수 등으로 구성된 순서가 있는 명령어의 집합이다.
모든 PL/SLQ 구문은 프로시저 내에서만 작성/동작이 가능하다. 이때 프로시저가 아닌 영역은 ANSI-SQL 영역이다.
1. 익명 프로시저
[Oracle] PL/SQL 익명 프로시저
💡익명 프로시저 declare -- 선언부 begin -- 구현부 end; declare부터 begin까지 선언부, begin부터 end까지 구현부이다. serveroutput on set serveroutput on; set serveroutput off; dbms.output이 보이게 하려면 먼저 위 구문
isaac-christian.tistory.com
익명 프로시저는 일회용 코드를 작성할 때 사용한다.
2. 실명 프로시저
[Oracle] PL/SQL 실명 프로시저
💡명령어 실행 처리 과정 클라이언트 컴퓨터에는 SQL Developer, DBeaver 같은 프로그램이 있고, 오라클 서버 컴퓨터에는 실제 프로세스가 동작하는 메모리와 오라클이 저장되어 있는 저장장치가 있
isaac-christian.tistory.com
실명 프로시저는 데이터베이스 객체 형태로 저장하여 재호출 하기 위해 사용한다.
💡PL/SQL 프로시저 구조
- DECLARE
- BEGIN
- EXCEPTION
- END
PL/SQL 프로시저는 4개의 블럭(키워드)로 구성되어 있다.
이는 오라클에서 메소드를 만들 때 사용하는 구문이다.
DECLARE
- 선언부
프로시저 내에서 사용할 변수, 객체 등을 선언하는 영역이다.
만들 변수나 객체가 없을 경우 생략이 가능하다.
BEGIN ~ END
- 실행부 (구현부)
BEGIN과 END는 동시에 쓰인다.
구현된 코드를 가지는 영역(메서드의 body 영역)이다.
생략이 불가능하다.
구현된 코드는 주로 ANSI-SQL구문과 PL/SQL 구문(연산, 제어 등)을 섞어서 작성하게 된다.
EXCEPTION
- 예외처리부
예외가 없을 경우 생략이 가능하다.
catch절의 역할만을 하며, BEGIN~END가 try역할을 한다.
제어 흐름이 생기다보니 중간에 작업이 중단되어서 다른 구문에 영향을 줄 수 있기 때문에 try-catch문처럼 예외처리를 하는 기능이 있다.
[Oracle] PL/SQL 예외 처리 (Exception Handling)
💡예외 처리 실행부에서(being~end) 발생하는 예외를 처리하는 블록(exception 블록) 이다. 예외 발생 --ORA-06502: PL/SQL: numeric or value error: character string buffer too small DECLARE vname varchar2(5); BEGIN dbms_output.put_
isaac-christian.tistory.com
Oracle 예외 처리에 대해서는 위 글을 참고하도록 한다.
💡PL/SQL 자료형
PL/SQL 자료형은 ANSI-SQL과 동일하다고 할 수 있을 정도로 비슷하다.
NUMBER, VARCHAR2, DATE 등을 사용한다.
[Oracle] SQL 키워드, 식별자, 자료형
💡SQL 키워드와 식별자 대소문자 구분 -- 대소문자 구분 X select * from tabs; SELECT * FROM tabs; -- 대소문자 구분 O select * from tabs where table_name = 'JOBS'; select * from tabs where table_name = 'jobs'; SQL은 키워드와 식
isaac-christian.tistory.com
ANSI-SQL의 자료형에 대해서는 위 글을 참고하도록 하자.
변수 선언
변수명 자료형 [not null] [default 값];
모든 PL/SQL 구문은 아무 곳에나 적어서 실행할 수 없다.
앞서 프로시저 내에서만 작성할 수 있다고 했다. 변수를 만들기 전에 프로시저를 만들어야 한다.
💡PL/SQL 연산자
PL/SQL 연산자는 ANSI-SQL과 거의 동일하지만, 대입 연산자에 차이가 있다.
대입 연산자
ANSI-SQL 대입 연산자
update table set column = '값';
PL/SQL 대입 연산자
변수 := '값';
PL/SQL 대입 연산자에는 앞에 콜론(:)이 붙는다.