如何使用Oracle全局临时表? [英] How to use Oracle global temporary table?
本文介绍了如何使用Oracle全局临时表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用Oracle全局临时表,而不在数据库中实际创建表.以下代码无法正常工作.有人可以解释使用全局临时表的正确方法吗?
I am attempting to use an Oracle global temporary table without physically creating a table in the database. The following code is not working. Can someone please explain the proper way to use global temporary tables?
declare
global temporary table my_temp_table(column1 number) on commit preserve rows;
begin
insert into my_temp_table (column1) values (1);
select * from my_temp_table;
end;
推荐答案
使用立即执行尝试以下操作:如果表已经存在,则使用异常处理程序绕过;否则,使用异常处理程序.还请注意,您不能在PLSQL中使用SQL select
Try the below using execute immediate: it uses exception handler to bypass if table already exists; also note that you cannot use SQL select inside 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;
这篇关于如何使用Oracle全局临时表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文