2011-04-05 27 views
1

我在DB2 LUW创建这样的观点:如何变换DB2硬编码的视图到Oracle视图

CREATE VIEW SCHEMA.TYPE(TYPEID, TYPENAME) AS 
SELECT TYPEID, TYPENAME 
    FROM TABLE(VALUES(0,'A'), 
        (1,'B'), 
        (2,'C'), 
        (3,'D'), 
        (4,'E'), 
        (5,'F')) T(TYPEID, TYPENAME) 

我想这同样的观点转移到Oracle数据库(10G)。 我发现TABLE存在于Oracle中,但VALUES函数没有。

你有想法如何转换视图?

谢谢

回答

2

我想出的唯一事情是:

CREATE VIEW SCHEMA.TYPE(TYPEID, TYPENAME) 
AS 
SELECT 0,'A' FROM DUAL 
UNION 
SELECT 1,'B' FROM DUAL 
UNION 
SELECT 2,'C' FROM DUAL 
UNION 
SELECT 3,'D' FROM DUAL 
UNION 
SELECT 4,'E' FROM DUAL 
UNION 
SELECT 5,'F' FROM DUAL 
+4

“UNION ALL”而不是“UNION”是一项小改进。 – Codo 2011-04-05 08:29:30

+0

谢谢科多! – 2011-04-05 08:54:49

1

你的其他选择是仅创建表和值插入到它。然后,您将获得能够对其施加约束,参照完整性和作品的额外好处。使它成为索引组织的表格。另外,它可能会为使用它的查询带来性能优势。

+0

谢谢!这个视图是第三方数据库的帮手。我们不想添加可能会影响此数据库升级过程的引用。 – 2011-04-06 06:04:08