더북(TheBook)

② 파싱

문자열 형태의 동적 SQL 문장을 파싱하는 과정으로, 해당 SQL 문장을 이전 단계에서 열었던 커서 ID 값과 연결하고 구문 검사를 수행한다. 파싱은 PARSE 프로시저를 호출해서 수행한다. PARSE 프로시저는 총 3가지 버전이 있다. 즉 함수 오버로딩 기능을 적용한 매개변수가 다른 PARSE 프로시저가 3개 존재하는데, 이중 가장 기본 형태를 살펴 보자.

    DBMS_SQL.PARSE (
    c                          IN INTEGER,
    statement                  IN VARCHAR2,
    language_flag              IN INTEGER,
    edition                    IN VARCHAR2 DEFAULT NULL,
    apply_crossedition_trigger IN VARCHAR2 DEFAULT NULL,
    fire_apply_trigger         IN BOOLEAN DEFAULT TRUE);

c: 파싱할 문장에 대한 커서 ID로 OPEN_CUSRSOR 함수 반환 값을 받는다.

statement: 동적 SQL문. 즉 문자열 형태의 동적 SQL문장

l anguage_flag: DBMS_SQL 패키지에서 설정한 상수인 NATIVE(실제 값은 1), 무조건 DBMS_SQL.NATIVE를 명시한다.

나머지 3개 매개변수는 생략이 가능하며 이 버전 이외의 다른 두 PARSE 프로시저는 SQL 문장이 들어오는 statement 매개변수의 타입이 각각 CLOB와 VARCHAR2A이다. CLOB는 LOB 타입의 한 종류이고, VARCHAR2A는 DBMS_SQL 패키지에 정의된 컬렉션 타입으로 VARCHAR2(32767) 타입의 항목으로 구성된 연관 배열이다.

    TYPE varchar2a IS TABLE OF VARCHAR2(32767) INDEX BYBINARY_INTEGER;
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.