Hãy thử cách dưới đây bằng cách sử dụng thực thi ngay lập tức:nó sử dụng trình xử lý ngoại lệ để bỏ qua nếu bảng đã tồn tại; cũng lưu ý rằng bạn không thể sử dụng SQL select bên trong PLSQL
DECLARE
l_column1 number;
begin
begin
execute immediate 'create global temporary table my_temp_table(column1 number)
on commit preserve rows';
exception when others
then
dbms_output.put_line(sqlerrm);
end;
insert into my_temp_table (column1) values (1);
select * into l_column1 from my_temp_table where column1=1;
dbms_output.put_line('the temp value is '||l_column1);
end;