목록데이터 베이스/오라클 PLSQL (12)
바닥코딩
어떤 언어든 프로그래밍 언어를 접해보셨다면 변수, 상수에 대한 내용을 알고 있을겁니다. 프로그램의 실행을 위해 계산에 사용될 값을 ~~~ 이런 설명에 대해서는 생략하고, 변수와 상수는 PL/SQL에서 어떻게 선언하는지 또 리터럴은 무엇인지에 대해 예제를 통해 알아보겠습니다. 변수 DECLARE v_num number; --변수 선언 begin v_num := 10; -- 변수에 값 넣기 end; 변수는 위와 같이 선언 되고 사용되어집니다. 여기서 주의 해야할점은 = 이 아니라 := 로 작성을 해주어야 10이 대입디 된다는 점입니다 PL/SQL에서 = 대입이 아니라 동등 연산을 의미합니다 상수 DECLARE c_pi CONSTANT NUMBER := 3.14; BEGIN DBMS_OUTPUT.PUT_LIN..
앵커(%)를 사용한 데이터타입 지정 데이터 타입을 지정하는 방법중에서 특이하면서도 유용한 방식이 있는데 변수나 컬럼, 테이블 , 커서 등 기존 선언을 참고하여 데이터 타입을 지정하는 방법이 있습니다. 이를 앵커라고 부르며(오라클에서 공식적으로 사용하는 언어는 아니라고 합니다.) 앵커를 활용하면 선언문이 간결해지는 것과 차후에 참조되는 타입이 변경되더라고 참조하는 쪽은 수정을 하지 않아도 된다는 장점을 가지고 있습니다 %TYPE DECLARE v_ename emp.ename%TYPE; -- 특정 컬럼의 타입이랑 동일하게 생성 v_ename2 v_ename%TYPE; -- 특정 변수의 타입이랑 동일하게 생성 %TYPE BEGIN SELECT ename INTO v_ename FROM EMP WHERE ROW..
PL/SQL 기본 구조 PL/SQL은 이전 포스트에 특징에서 다루었듯 블록 구조로 이루어져 있습니다. DECLARE v_str VARCHAR2(100); -- 선언부 BEGIN -- 시작 v_str := 'Hello world'; DBMS_OUTPUT.PUT_LINE(v_str); EXCEPTION WHEN OTHERS THEN -- 예외처리 DBMS_OUTPUT.PUT(SQLERRM); END; -- end 선언부 : DECLARE 와 BEGIN 사이에 위치하며 타입, 상수 , 변수 , 예외 , 커서 서브프로그램들이 오는 구역 BEGIN ~ END : 실행부에 해당하며 실제로 데이터를 처리하는 문장이 놓입니다 실행부는 반드시 있어야 하는 필수 영 역이며 END 는 ; 으로 끝나야 합니다.
PL/SQL? sql을 공부하신 분들이라면 다들 아시는 상식이 있을 겁니다. 관계형 데이터베이스 시스템(RDBMS) 에서 사용하는 표 준 언어인 SQL 은 절차형 언어가 아닙니다 SQL의 DDL/DML/DCL 을 통해 데이터베이스를 정의 조작 제어 하는 것이 가능하지만 SQL은 결국 데이터의 처리 집합 만을 기술할 뿐 어떠한 절차를 걸쳐서 데이터 집합을 얻어야 하는지에대한 절차적 과정을 제공하지는 않습니다. 일반적인 SQL 로직을 작성하면 이 문장의 실행순서는 옵티마이저에 의해 이루어지는데 , 이는 여러가지 데이터베이스 통계를 기초로 실행 게획을 처리하기 때문에 데이터를 일반적으로 빠르게 다루어 주지만 결국 개발자 입장에서는 융통성 있는 데이터 처리는 불가능 합니다. 이러한 단점을 극복하기 위한 대안으로..