본문 바로가기

Server Oriented/DB-Oracle

프로시저에서 테이블/인덱스 생성 등 ddl 문을 실행하려면..

프로시저에서 ddl 문을 실행하는 방법은 2가지라 하는데,

여기서는 커서 사용하는 방법이 아닌

'execute immediate DDL문장'  사용..

 

그런데, 프로시저에서 테이블을 생성하려면..

관련 권한도 필요해서,

sys 나 system 계정에서 해당 권한을 부여해 주어야 한다.

grant create any table to 사용자계정;

 


execute immediate 'create table ...'

execute immediate 'create index ...'


프로시저 변수에 ddl 문을 담았다가 execute '변수' 로 실행할 수도 있다.


'문장1' ||

' where column1 = ''C'' ' || -- 인용부호 2개를 이어서 사용하면, '||'C'||' 처럼 복잡하게 하지 않아도 된다...