2016-12-06 8 views
0

프로 시저에서 하나의 임시 테이블을 만들고 'SP'를 실행 한 다음 해당 테이블을 자동으로 삭제 한 후 해당 프로 시저에서 해당 테이블을 사용하려면 어떻게해야합니까? 당신은 테이블을임시 테이블을 생성

execute immediate 'drop table....

+0

동적 SQL을 확인 하시겠습니까? – GurV

+2

이 접근 방식 대신 전역 임시 테이블을 사용하는 것이 좋습니다. GTT의 데이터는 세션에 따라 다릅니다. 프로 시저 외부에서 한 번만 테이블을 작성하고 프로 시저에서 사용해야합니다. https://oracle-base.com/articles/misc/temporary-tables –

+0

두 세션이 동시에 프로 시저를 실행하려면 어떻게해야합니까? 테이블을 만들기 전에 테이블이 존재하는지 확인하는 코드가 있습니까? 다른 세션에서 사용할 수 있는지 여부를 어떻게 알 수 있습니까? 또한'delete' 또는'drop'을 의미합니까? –

답변

0

당신은 동적 SQL이 될 수

execute immediate 'create table my_table (/* cols here */)'; 

과 끝에는 : 테이블이 컴파일시에 존재하지 않는로 직접 임시 테이블을 사용하는 동안

또한
execute immediate 'drop table my_table'; 

언급 할 가치, 당신은 코드를 컴파일 할 수 없습니다. 동적 SQL을 사용하려면 사용해야합니다.

0

당신을 놓을 수는 같은 방법으로 모두 결국 당신의 STAF

을 할 수있는 그런

Execute immediate 'create table...'

동적 SQL을 사용할 수 있습니다

+0

나는 왜 downvote 제발 알아? – GurV