본문 바로가기

Oracle/SQL

[Oracle] EXECUTE IMMEDIATE 문 ( 동적 SQL)

728x90

EXECUTE IMMEDIATE 문법

    EXECUTE IMMEDIATE dynamic_sql_string
        [INTO {define_var1 [, define_var2] ... | plsql_record }]
        [USING [IN | OUT | IN OUT] bind_arg1 [,
               [IN | OUT | IN OUT] bind_arg2] ...];

 

- USING 절에 바인드 변수를 사용한다. 

- IN : 입력 모드, 값이 PL/SQL에서 DB서버로 전달된다. 입력 모드 변수의 값은 동적 SQL의 실행 전후에 변경이 없다. 

- OUT : 출력 모드, 값이 DB 서버에서 PL/SQL로 전달된다.

- IN OUT : 입출력 모드, 값이 양방향으로 전달된다. 동적 SQL을 실행하기전에 가지고 있던 값이 DB서러보 전되되어 참조되며, DB서버에서 변경된 값이 다시 PL/SQL 변수로 되돌려진다. 

 

- 다수를 사용할 경우, 변수명과 동일하지 않게 순서대로 기입된다. 

 

728x90
반응형