본문 바로가기

Oracle

(17)
PL/SQL - 대입연산자 pl/sql에서는 :=를 사용하여 변수에 값을 대입합니다. a := 3 이런식으로 변수에 대입을 합니다! 그리고 a = 3 이런 식으로 사용하면 다른 프로그래밍 언어에서의 ==와 같은 비교연산자입니다. := (대입) = (비교)
PL/SQL - 08(Package) Package 오라클 DB에 저장되어 있는 서로 관련 있는 PL/SQL 프러시저와 함수들의 집합입니다. 패키지는 선언부와 본문 두 부문으로 나누어 집니다. 패키지 선언부(head) 선언 절은 패키지에 포함될 프로시저나 함수, 커서, 변수, 예외 절 등을 선언합니다. 패키지 선언부에서 선언하면 패키지 전체에 적용됩니다! 다시 말하면 선언부에 선언한 변수는 PUBLIC변수로 사용된다고 생각하면 됩니다. CREATE OR REPLACE PACKAGE package_name IS | AS [변수선언절] [커서서언절] [예외선언절] [Procedure 선언절] [Function 선언절] END package_name; 패키지 본문(body) 패키지 본문은 패키지에서 선언된 부분의 실행을 정의하는 부분입니다. 즉,..
PL/SQL - 07(Exception) 예외(Exception) 오라클 PL/SQL에서는 오류를 예외라고 부릅니다. 컴파일 타임 오류(문법적 에러), 프로그램 실행 때 발생하는 실행 타임 오류로 구분할 수 있습니다. Execption 문법 when others 절은 맨 마지막에 옵니다. 예외 처리절은 exception부터 시작합니다. EXCEPTION WHEN 예외1[or 예외2] THEN statements WHEN 예외3 THEN WHEN OTHERS THEN * 이 포스팅은 아래 출처의 내용을 개인적인 공부를 위해 정리한 내용입니다. 출처 : http://www.gurubee.net/oracle/plsql Oracle PL/SQL 강좌 www.gurubee.net
PL/SQL - 06(Cursor) PL/SQL에서 반드시 알아야 할 부분인 커서에 대해 공부해보겠습니다~ 모든 SQL문은 연관된 각각의 커서를 소유하고 있으며 커서에는 2가지 종류의 커서가 존재합니다. 1. 암시적 커서 - 모든 DML 및 PL/SQL SELECT문에 대해 선언됩니다. 2. 명시적 커서 - 프로그래머에 의해 선언되며 이름이 있는 커서입니다. 먼저 암시적인 커서에 대해서 알아보겠습니다. 암시적 커서 암시적인 커서는 PL/SQL 실행 메커니즘에 의해 처리되는 SQL 문장이 처리되는 곳에 대한 익명의 어드레스입니다 오라클 DB에서 실행되는 모든 SQL문은 암시적인 커서로 모든 암시적인 커서 속성이 사용 가능합니다. 암시적 커서 속성 더보기 SQL%ROWCOUNT : 해당 SQL문에 영향을 받는 행의 수 SQL% FOUND : ..
PL/SQL - 05 (SQL문) SELECT, UPDATE, DELETE 등은 기존과 비슷하므로 생략하고 FOR LOOP문부터 공부하겠습니다. FOR LOOP문 FOR index IN [REVERSE] 시작값 .. END값 LOOP statment 1 statment 2 ... END LOOP; index는 자동 선언되는 binary integer로 1씩 증가합니다. reverse 옵션이 사용되면 index는 증가하는 게 아니라 감소합니다 (upper_bound -> lower_bound) IN 다음에는 coursor나 select문을 사용 가능합니다! FOR LOOP문 예제 BEGIN FOR emp_list IN (SELECT ename, sal FROM emp WHERE deptno = 10) LOOP i := i+1; ename_..
PL/SQL - 04(테이블/레코드) PL/SQL 테이블과 오라클 SQL 테이블은 다릅니다. PL/SQL 테이블은 일종의 일차원 배열이라고 생각하는 것이 이해가 편하다고 합니다. 테이블은 크기에 제한이 없으며, 그 ROW의 수는 데이터가 들어옴에 따라 자동 증가합니다. BINARY_INTEGER 타입의 인덱스 번호로 순서가 정해지며, 하나의 테이블에 한 개의 칼럼 데이터를 저장합니다. TYPE table_name IS TABLE OF datatype INDEX BY BINARY INTEGER TYPE 이름 IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER PL/SQL 레코드 여러 개의 데이터 타입을 갖는 변수들의 집합입니다. - 스칼라 , RECORD, 또는 PL/SQL TABLE datatype중 하나..
PL/SQL - 03(데이터 타입) 변수 선언 방법과 데이터 타입에 대해 알아보겠습니다. identifier [CONSTANT] data type [NOT NULL] [:= 상수값이나 표현식]; identifier의 이름은 sql의 object 명과 동일 규칙을 따릅니다. identifier를 상수로 지정하고 싶은 경우 CONSTANT라는 KEYWORD를 명시하고 반드시 초기화를 할당합니다. NOT NULL이 정의되어 있으면 초기값을 반드시 지정하고, 정의되어 있지 않을 때는 생략 가능합니다. 초기값을 정의하지 않을 경우 null값을 가집니다! *변수 선언 방법 v_price CONSTANT NUMBER(4,2) := 12.34; v_name VARCHAR2(20); v_Bir_Type CHAR(1); v_flag BOOLEAN NOT N..
PL/SQL - 02(프로시저와 함수) 이전 글에서 스토어드 프로시저에 대해 간략하게 언급했는데 이번 글에서 다시 한번 자세하게 공부해보겠습니다 프로시저 - 특정 작업을 수행하며, 이름이 있는 PL/SQL 블록으로, 매개 변수를 받으며 반복적으로 사용할 수 있습니다. 보통 연속 실행, 구현이 복잡한 트랜잭션을 수행하는 블록을 db에 저장하기 위해 생성합니다. 문법 - CREATE OR REPLACE 구문을 사용하여 생성 - IS로 PL/SQL의 블록 시작 - LOCAL 변수는 IS와 BEGIN 사이에 선언 CREATE OR REPLACE procedure name IN arg OUT arg IN OUT arg IS variable 선언 BEGIN -- 필수 PL/SQL Block -- SQL문장, PL?SQL 제어 문장 EXCEPTION --..