oracle - 在 Oracle 18 的另一个临时表中使用临时表
问题描述
在 Oracle18 中是否可以在另一个临时表中使用临时表?下面的例子:
CREATE PRIVATE TEMPORARY TABLE ora$ptt_today_sales
ON COMMIT PRESERVE DEFINITION
AS
SELECT * FROM orders WHERE order_date = SYSDATE;
CREATE PRIVATE TEMPORARY TABLE ora$information
ON COMMIT PRESERVE DEFINITION
AS
SELECT * FROM ora$ptt_today_sales WHERE customerID=5;
解决方案
我在 Live SQL (livesql.oracle.com) 上尝试了它(它 - 真的 - 运行 Oracle 19c),而且,尽管如此,它工作正常,没问题。
但是,您编写的第二个代码不能用作私有临时表名,该名称应以 开头ora$ptt_
,与您用于第一个表的前缀相同。
该前缀由PRIVATE_TEMP_TABLE_PREFIX
初始化参数定义。它的默认值为ora$ptt_
(就像在您的第一个CREATE TABLE
语句中一样)。由于您很可能没有在这两个命令之间更改它,因此也对第二个表使用相同的前缀。
推荐阅读
- c# - WPF窗口左上角不透明
- windows - curl: (3) URL 位置 1 中不匹配的大括号:
- python - (IndexError: list assignment index out of range) 错误索引数组
- assembly - 在汇编中读取二进制文件
- node.js - Node-express 承诺链和常见的 catch 语句
- reactjs - Emotion CSS-in-JS ReferenceError:未定义导出
- javascript - Firebase 功能问题
- r - 将整数转换为 R 中的时间 HH:MM(例如:50-->00:50)
- c# - 使用 C# 的 Excel 单元格边框
- ruby-on-rails - Travis 因 webpacker 问题 (Rspec) rails 5.2 失败