DUAL 表

Oracle 中提供的一个虚拟表,PostgreSQL 中不存在

DUAL 是 Oracle 提供的一个虚拟表,用于评估不需要实际引用数据库对象的表达式,例如:

SELECT 1 FROM DUAL

PostgreSQL 不提供等同于 DUAL 表的功能,因为它能够在不引用数据库对象的情况下评估表达式,例如:

SELECT 1

兼容性

orafce 实现了一个 DUAL 表来帮助从 Oracle 迁移,创建方式如下:

CREATE VIEW public.dual AS SELECT 'X'::varchar AS dummy;

(来源)

PostgreSQL 中的隐式实现

2018 年,Tom Lane 提出了一种潜在的用例,其中规划器可以从在规划器/重写器中插入一个虚拟表中获益,这将简化各种代码路径:"SELECT ... FROM DUAL" 并不像看起来那么愚蠢。这随后在 PostgreSQL 12 中作为提交 4be058fe 实现。

分类

迁移规划器

参见

orafce

反馈

提交任何关于 "DUAL 表" 的评论、建议或更正 此处