📃 DATABASE/ORACLE

    [PL/SQL] DBMS_SQL (1) : 처리순서

    DBMS_SQL (1)동적 SQL을 사용하는 또 다른 방법이다. NDS에 비해 많은 기능을 구현할 수 있지만, 사용법이 좀 복잡하다. 처리 순서DBMS_SQL 패키지는 내부적으로 묵시적 커서를 이용해서 SQL문을 처리하는데, 총 8단계 과정도 커서를 처리하는 작업이라고 보면 된다. 1. 커서 열기 : OPEN_CURSOR1DBMS_SQL.OPEN_CURSOR (security_level IN INTEGER) RETURN INTEGER;cs- security_level : 보안옵션. 생략이 가능하며 0, 1, 2가 올 수 있고 디폴트는 0- 반환값 : 커서 ID값 2. 파싱문자열 형태의 동적 sql문장을 파싱하는 과정.PARSE 프로시저를 호출해 SQL문장을 이전 단계에서 열었던 커서ID 값과 연결하고 구..

    [PL/SQL] 다중 로우를 처리하는 동적 SQL문

    [PL/SQL] 다중 로우를 처리하는 동적 SQL문

    다중 로우를 처리하는 동적 SQL문OPEN FOR 문12OPEN 커서변수 FOR 동적SQL문장USING 바인드변수1, 바인드변수2, ...;cs 예제CH13_PHYSICIST 테이블을 비우고 다시 값을 넣자123456TRUNCATE TABLE CH13_PHYSICIST; INSERT INTO CH13_PHYSICIST VALUES (1, 'Galileo Galilei', TO_DATE('1564-02-15', 'YYYY-MM-DD'));INSERT INTO CH13_PHYSICIST VALUES (2, 'Isaac Newton', TO_DATE('1643-01-04', 'YYYY-MM-DD'));INSERT INTO CH13_PHYSICIST VALUES (3, 'Max Plank', TO_DATE('1..

    [PL/SQL] 동적 SQL

    [PL/SQL] 동적 SQL

    동적 SQL이 필요한 경우1. 컴파일 시에 SQL 문장이 확정되지 않은 경우2. PL/SQL 블록 상에서 DDL문을 실행해야 할 경우3. PL/SQL 블록 상에서 ALTER SYSTEM/SESSION 명령어를 실행해야 할 경우 동적 SQL을 사용하는 방법1. NDS(원시 동적 SQL, NATIVE DYNAMIC SQL)2. DBMS_SQL 시스템 패키지 EXECUTE IMMEDIATE문1234EXECUTE IMMEDIATE SQL문_문자열[ INTO OUT변수1, OUT변수2, ... ][ USING [ IN / OUT / INOUT ] 매개변수1, ... ]...;Colored by Color Scriptercs- INTO : SELECT INTO 문에서 INTO 역할- USING : 바인드 변수. 디..

    [PL/SQL] 기타 패키지 특징

    [PL/SQL] 기타 패키지 특징

    기타 패키지 특징PRAGMA SERIALLY_REUSABLE 옵션세션이 유지되고있는 동안 패키지 데이터가 저장되있는 공간을 UGA(USER GLOBAL AREA)라고 하는데, 세션이 생길 때마다 하나씩 생성된다.그런데 사용자가 많아지면 많은 UGA가 생길것이고, 페키지 데이터를 많이 사용하면 메모리 낭비를 초래할 수 있다.세션이 아닌 호출 단위별로 패키지 데이터를 사용할 수 있는 방법이 있는데 PRAGMA SERIALLY_REUSABLE이 그것이다.PRAGMA SERIALLY_REUSABLE를 패키지 선언부와 본문에 명시하면 해당 패키지 데이터는 호출이 끝나면 다시 초기화되어 같은 세션에 있더라도 값을 공유하지 않는다. 1234567CREATE OR REPLACE PACKAGE CH12_COL_PKG I..

    [PL/SQL] 패키지 데이터

    [PL/SQL] 패키지 데이터

    패키지 데이터패키지에는 서브 프로그램뿐만 아니라 상수, 변수, 커서, 레코드, 컬렉션, 예외까지 선언해서 사용할 수 있다.굳이 상수나 변수, 커서 등을 패키지에서 선언해 사용할 필요가 있을까? 상수와 변수 선언패키지 안에 상수나 변수를 선언하게 되면 이들의 생존주기는 세션 단위로, 한 세션이 살아있는 동안에는 그 값이 메모리 상에 유지된다.즉, 한 번 로그인한 뒤 로그아웃을 하기 전까지는 그 값이 공유된다. 변수의 경우, 해당 패키지의 사용이 끝났더라도 같은 세션에서는 그 값을 공유할 수 있다. 1234CREATE OR REPLACE PACKAGE CH12_VAR IS C_TEST CONSTANT VARCHAR2(10) := 'TEST'; V_TEST VARCHAR2(10);END;Colored by C..

    [PL/SQL] 패키지(PACKAGE)

    [PL/SQL] 패키지(PACKAGE)

    패키지(PACKAGE)논리적 연관성이 있는 pl/sql타입, 변수, 상수, 서브 프로그램, 커서, 예외 등의 항목을 묶어 놓은 객체다.패키지는 컴파일 과정을 거쳐 DB에 저장되며, 다른 프로그램에서 패키지의 항목을 참조, 공유,실행할 수 있다. 패키지의 장점1. 모듈화 기능업무적으로 연관성이 있거나 비슷한 기능을 수행하는 서브 프로그램이나 변수, 상수, 커서, 사용자 정의 타입들을 하나의 패키지에 담아두면 이해하기도, 관리하기도 쉽다.2. 프로그램 설계의 용이성패키지는 선언부(스펙)과 본문(바디)로 구성되는데, 선언부만 있어도 컴파일한 뒤 저장이 가능하다.3. 캡슐화패키지 선언부는 외부에 공개되지만, 패키지에 속한 커서, 함수, 프로시저의 세부 구현내용이 담겨있는 본문은 외부에서 볼 수 없다.즉, 정보 ..

반응형