我正在尝试使用Oracle / PLSQL: LOCAL TEMPORARY TABLES中的示例声明本地临时表。但是,当我尝试将其插入sqlplus' CLI
并按 Enter 时,它不执行任何操作,除按 Ctrl <之外,我不知道下一步该如何完成命令。 / kbd> + C 中断命令输入:
SQL> DECLARE LOCAL TEMPORARY TABLE suppliers_temp
( supplier_id number(10) NOT NULL,
supplier_name varchar2(50) NOT NULL,
contact_name varchar2(50)
); 2 3 4 5
6
7 ;
8 ^C
要执行此查询,我已以 SYSTEM 用户身份登录。
为什么这个例子对我不起作用?
谢谢!
答案 0 :(得分:4)
local temporary tables
在Oracle RDBMS中不是问题。取而代之的是,您可以拥有一个Global Temporary Table (GTT)(它创建一个永久表,但是数据被保存在会话级别),或者在18c中引入,您可以拥有一个Private Temporary Table (PTT)(表的定义和数据被保留。在会话级别)。
两者都类似于标准的create table语句,因此要创建一个GTT在提交时删除行,您可以执行以下操作:
create global temporary table table_name (col1 number, col2 varchar2(20))
on commit delete rows;