2015년 7월 6일 월요일

PL/SQL 블록에서 다른 프러시저, 함수 호출하기

PL/SQL 블록에서 다른 프러시저, 함수 호출하기

SQL> CREATE OR REPLACE PROCEDURE create_dept (
  2    p_deptno IN dept2.deptno%TYPE,
  3    p_dname  IN dept2.dname%TYPE,
  4    p_loc    IN dept2.loc%TYPE
  5  )
  6  IS
  7  BEGIN
  8
  9    INSERT INTO dept2 values (
 10      p_deptno,
 11      p_dname,
 12      p_loc);
 13  END;
 14  /
프로시저가 생성되었습니다.

SQL> DECLARE
  2    plsql_block VARCHAR2(500);
  3    new_deptno  dept2.deptno%TYPE := 99;
  4    new_dname  dept2.dname%TYPE := 'SALES';
  5    new_loc  dept2.loc%TYPE := 'GURODIGITAL';
  6  BEGIN
  7    -- PL/SQL 프로그램 호출
  8    plsql_block := 'BEGIN create_dept(:a, :b, :c); END;';
  9
 10    EXECUTE IMMEDIATE plsql_block
 11      USING new_deptno, new_dname, new_loc;
 12  END;
 13  /

SQL> SELECT * FROM DEPT2;

    DEPTNO  DNAME          LOC
----------  --------------  -------------
        10 ACCOUNTING    GURODIGITAL
        20 RESEARCH        DALLAS
        30 SALES            CHICAGO
        40 OPERATIONS      BOSTON
        99 SALES            GURODIGITAL 

댓글 없음:

댓글 쓰기