我试图创建一个临时表,但它显示我这个错误:
ORA-00903:无效的表名。
我做错了什么?我是这样做的:
create private temporary table PID
ON COMMIT PRESERVE ROWS
as
select distinct
lot_id,
ssr.run_oid,
process_id
from sigma.sigma_run ssr
inner join sigma.sigma_lot ssl on ssl.run_oid = ssr.run_oid
来自CREATE TABLE
文档:
私有临时表的限制
除了临时表的一般限制外,私有临时表还受到以下限制:
- 私有临时表的名称必须总是以
init.ora
参数PRIVATE_TEMP_TABLE_PREFIX
定义的前缀。默认为ORA$PTT_
。
所以你需要使用:
create private temporary table ORA$PTT_PID
ON COMMIT PRESERVE DEFINITION
AS
select distinct
lot_id,
ssr.run_oid,
process_id
from sigma.sigma_run ssr
inner join sigma.sigma_lot ssl on ssl.run_oid = ssr.run_oid
注意:您还需要PRESERVE DEFINITION
而不是PRESERVE ROWS
。
小提琴