为何创建私有临时表时出现ORA-00903:无效表名错误?
ORA-00903私有临时表创建错误的解决方法
错误根源
Oracle私有临时表有强制命名规则:默认情况下表名必须以ORA$PTT_作为前缀(若未修改PRIVATE_TEMP_TABLE_PREFIX初始化参数)。你使用的表名PID不符合该规则,触发了invalid table name错误。
修正后的SQL语句
create private temporary table ORA$PTT_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
额外说明
如果需要自定义私有临时表前缀,可以修改PRIVATE_TEMP_TABLE_PREFIX参数,但该参数为静态参数,修改后需重启数据库才能生效。日常场景下使用默认前缀即可满足需求。
内容的提问来源于stack exchange,提问作者sheesh
相关产品推荐
相关产品推荐

