2013-11-28 5 views
0

프로 시저에서이 두 문을 실행하고 있습니다.Plsql 동적 SQL 문

execute immediate 'create table temp_test(user_state varchar(100), user_goal varchar(100))'; 
     insert into temp_test values('sunil','test'); 

그리고 오류가 발생했습니다. 테이블을 찾을 수 없습니다.

그래서 동적 SQL 문이 명령문을 즉시 실행하지 않는다는 것을 알고 싶습니다.

답변

1

당신은 동적 삽입을 할 필요가 :

begin 
    execute immediate 'create table temp_test(user_state varchar(100), user_goal varchar(100))'; 
    execute immediate 'insert into temp_test values('sunil','test');'; 
    COMMIT ; 
end; 
+0

답변 해 주셔서 감사합니다! 실행 즉시 선언문에 변수를 삽입하려면 어떻게해야합니까? 미안 해요 절차 작성을위한 새로운 :) –

1

그것이

begin 
    execute immediate 'create table temp_test(user_state varchar(100), user_goal varchar(100))'; 
    execute immediate 'insert into temp_test values(''sunil'',''test'')'; 
    COMMIT ; 
end; 
+0

답변 주셔서 감사합니다! 실행 즉시 선언문에 변수를 삽입하려면 어떻게해야합니까? 미안 내가 프로 시저를 작성하는 새로운 오전 : –

+0

USING 절을 사용할 수 있습니다. 링크의 예제 7.1을 확인하십시오. http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/dynamic.htm –

1

예를 맞다가, 그 동적 SQL 문은 즉시 문을 실행하지 않습니다해야합니다. 이 대답을 확인하십시오. execute immediate create table and update table

+0

답변 해 주셔서 감사합니다 !! 실행 즉시 선언문에 변수를 삽입하려면 어떻게해야합니까? 미안 나는 프로 시저 작성을위한 새로운 :) –