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 表" 的任何评论、建议或更正 此处