기본 콘텐츠로 건너뛰기

[DB][Oracle] PL/SQL 개념정리


Oracle이 자체 DBMS를 위해 표준 SQL을 확장해서 개발한 쿼리용 프로그램 언어로 절차적인 언어(Procedural Language)이다.


  • - PL/SQL : Procedural Language extention to SQL
  • - PL/SQL 프로그램의 종류 > 1. Procedure, 2. Function, 3. Trigger
  • - 장점 : 프로그래밍 언어처럼 "예외처리"가 가능하며, 디버깅 기능을 제공
  • - 기본 구조로 '블럭'단위로 실행된다.  블럭은 'BEGIN'로 시작해서 'END'로 끝남.
  • - IF문, Loop문 사용가능
  • 주석기능, 단이행은 "-- 내용",  긴 문장은 " /*  ~  */ " 사용한다
  • PUT_LINE()  프로시저로 화면출력을 지원한다 
    ex) DBMS_OUTPUT.PUT_LINE('Hellow World~');
[PL/SQL] 구조

- DECLARE  (선언 : 변수/상수(Construct)/커서 선언)
- BEGIN  (실행 : SQL문, 제어문, 반복문, 함수 등 제어 로직구현)
- EXCEPTION  (예외 처리)
- END (종료 구분  반드시 ";"으로 끝을 알려야함)

[PL/SQL] 종류

- 익명 블럭 : 식별자(이름)없는 블럭문
- 명시적 블럭 : DB의 객체로 사용되는 블럭문
                    (프로시저, 함수, 패키지(하나 이상의 프로시저/함수 묶음), 트리거)

[PL/SQL] 변수

- 구조
    identifier  [constant]  datatype   [ not null ]    [ := (default expression)] ;
    식별자     상수선언   변수타입   null가능유무  값
    ex) DECLARE  CODE  VARCHAR2(10);
    ex) DECLARE  CODE  VARCHAR2(10) := '2019D00001';
    ex) DECLARE  CODE  VARCHAR2(10) DEFAULT '2019D00001'

- 팁 : 변수는 하나의 값 이상 가질 수 있다(배열), 예: 테이블의 ROW값 들
    ex)
        -- 테이블 전체 row를 값으로 가지는 경우 ( %ROWTYPE )
        DECLARE
            DATA   EMP%ROWTYPE;
        BEGIN
            SELECT   *   INTO  DATA
            FROM    EMP
            WHERE   EMPNO = '1234';
            DBMS_OUTPUT.PUT_LINE(DATA.NAME || ', ' || DATA.DEPT_NO);
        END;

        -- 테이블의 특정 컬럼만 지정하는 경우 ( %TYPE )
        DECLARE
            V_NAME   EMP.NAME%TYPE;
            V_DEPTNO   EMP.DEPTNO%TYPE;
        BEGIN
            SELECT   A.NAME, A.DEPTNO  INTO  V_NAME, V_DEPTNO
            FROM    EMP A
            WHERE   EMPNO = '1234';
            DBMS_OUTPUT.PUT_LINE(V_NAME || ', ' || V_DEPTNO);
        END;

- Oracle에서 값의 대입 연사자로 ":="를 사용한다, '='는 '같다'를 의미한다.


~ 작성중 ............

이 블로그의 인기 게시물

[C#] 연산자 목록(Operators)

[C#] C# 프로그램의 일반적인 구조(A skeleton of a C# program)

// A skeleton of a C# program  using System; namespace YourNamespace {     class YourClass     {     }     struct YourStruct     {     }     interface IYourInterface      {     }     delegate int YourDelegate();     enum YourEnum      {     }     namespace YourNestedNamespace     {         struct YourStruct          {         }     }     class YourMainClass     {         static void Main(string[] args)          {             //Your program starts here...         }     } } By Microsoft.MSDN :: .NET Guide Docs

[C#] .NET Configuration file :: App.config

프로그램의 옵션들을 담아 두는 파일로서 아주 예전에는 .INI 파일을 사용하였었으며, 이후 윈도우즈가 관리하는 레지스트리 데이타베이스에 시스템 및 응용프로그램의 옵션들을 저장하였다. 레지스트리는 프로그램의 옵션을 저장하는 훌륭한 저장 장소이나, 모든 응용프로그램이 항상 레지스트리에 데이타를 쓰는 권한을 갖는 것은 아니였기 때문에 Permission 제약점이 있었다. .NET Framework에서는 프로그램의 행위를 결정짓는 옵션들을 저장하기 위해 .Config 파일을 사용한다. 데스크탑 응용프로그램 .EXE 에 대해서 Configuration 파일(구성파일)은 .EXE.Config이 되는데, 예를 들어, TEST.EXE의 구성 파일은 TEST.EXE.Config가 된다. Visual Studio에서 콘솔, 윈폼, 혹은 WPF 등의  데스크탑 프로젝트를 생성한 후 App.config 파일을 추가하고(아래 그림처럼 Application Configuration File 추가) 여기에 필요한 옵션들을 설정한 후 빌드하면 .EXE 파일에 대한 .EXE.Config 파일이 자동으로 생성 된다. 그리고 이렇게 추가한 App.config 파일의 내용을 소스코드에서 사용하기위해서는 "참조"에서 '참조 추가하기'를 통해 반드시 에셈블리의 "System.Configurarion"을 추가하고 사용 할 소스코드에 using 문으로 추가해 주어야 한다.  " using System.Configuration; " <예제> [App.config] <?xml version="1.0" encoding="utf-8"?> <configuration>   <startup>     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1...