【问题标题】:Use temporary inside another temporary table in Oracle 18在 Oracle 18 的另一个临时表中使用临时表
【发布时间】:2019-05-06 16:02:49
【问题描述】:

在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;

【问题讨论】:

    标签: oracle temporary oracle18c


    【解决方案1】:

    我在 Live SQL (livesql.oracle.com) 上尝试过它(它 - 确实 - 运行 Oracle 19c),并且,就像我一样,它工作正常,没问题。

    但是,您编写的第二个代码不能用作私有临时表名,该名称应以 ora$ptt_ 开头,与您用于第一个表的前缀相同。

    该前缀由PRIVATE_TEMP_TABLE_PREFIX 初始化参数定义。它的默认值为ora$ptt_(就像在您的第一个CREATE TABLE 语句中一样)。由于您很可能没有在这两个命令之间更改它,因此也对第二个表使用相同的前缀。

    【讨论】:

    • 感谢您的回答,终于我的开发服务器在线运行了 v18!,好的,问题是,简单的示例工作正常,那么问题是当我使用私有临时表时SQL 有几个连接,然后我收到错误:00000 - “并行查询服务器 %s 中发出错误信号” *原因:并行查询服务器达到异常条件。
    • 不客气。不幸的是,我不知道你为什么会出现这个错误(我应该用谷歌搜索,但你已经这样做了)。希望其他人能够提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多