为什么我得到这个无效的表名错误?

  • 本文关键字:无效 错误 sql oracle
  • 更新时间 :
  • 英文 :


我试图创建一个临时表,但它显示我这个错误:

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

小提琴

最新更新