oracle - 无法在 Oracle SQL Developer v19.0.1 中创建 PRIVATE TEMPORARY TABLE(错误 : ORA-00905)

标签 oracle

我尝试在 Oracle SQL Developer (v.19.0.1) 中创建临时表,但它抛出错误:ORA-00905:缺少关键字

CREATE PRIVATE TEMPORARY TABLE sales AS

SELECT SalesDate, Product, Quantity
FROM BI.Sales a
JOIN PRODREF.SKU b on a.item_ID = b.sku
WHERE SalesDate >= '01-JUN-19';

错误报告 - ORA-00905: 缺少关键字 00905. 00000 - “缺少关键字” *原因:
*行动:

最佳答案

私有(private)临时表 (PTT) 是 Oracle Database 18c 的一项功能。 Oracle SQL Developer 是一个独立的产品,有自己的版本号。

因此,首先确保您使用的数据库在此版本或更高版本上:

select banner from v$version;

BANNER                                                                   
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production  

接下来,您必须使用 private_temp_table_prefix 参数设置的任何内容作为 PTT 名称的前缀:

sho parameter private

NAME                      TYPE   VALUE    
------------------------- ------ -------- 
private_temp_table_prefix string ORA$PTT_ 

ORA$PTT_ 是默认值。所以你的创建表可能应该是:

CREATE PRIVATE TEMPORARY TABLE ora$ptt_sales AS
  SELECT SalesDate, Product, Quantity
  FROM BI.Sales a
  JOIN PRODREF.SKU b on a.item_ID = b.sku
  WHERE SalesDate >= '01-JUN-19';

关于oracle - 无法在 Oracle SQL Developer v19.0.1 中创建 PRIVATE TEMPORARY TABLE(错误 : ORA-00905),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56758696/

相关文章:

sql - 根据变化的维度对分区进行编号

sql - 检查 Oracle 数据库中电子邮件的约束

oracle - 如何访问结构并获取列列表,refcursor 的数据类型?

sql创建带有约束的表

java - Oracle 查询之间不采用结束日期时间

sql - sql中是否有连接将一个表的缺失数据填充到另一个表?

查询 "undefined"列 (?) 时出现 SQL 错误

java - Hibernate 与 HSQLDB 和 Oracle

sql - pl/sql函数调用了多少次?

PHP 和 Oracle - oci_connect() ORA-12705 : Cannot access NLS data files