影响:删除视图,创建具有相同名称的表

时间:2013-08-15 15:56:05

标签: sql oracle view

所以在oracle中有一个名为XYZ的VIEW,有人说,我们将用一个同名的TABLE替换它。

这会对在该视图上编写的现有SQL产生什么样的影响? 查询VIEW的语法是否与TABLE的语法相同?

2 个答案:

答案 0 :(得分:3)

通过“...将其替换为表格...”我假设您的意思是创建的表具有视图引用的相同数据。换句话说,新表冗余地包含来自其他表(视图引用的那些表)的数据。

SELECT-Statements不需要更改 - 语法是相同的。

BUT:该视图会立即反映基础表格的变化。该表显然不是 - 它必须通过触发器或应用程序逻辑保持同步。因此,根据观点,这可能是一个相当大的变化。如果视图可更新,情况更是如此。

示例:

假设视图定义为... select a.key, b.name from a,b where b.key = a.b_ref

然后从视图中进行选择将始终反映对表ab的更改。

如果您用表替换它,则每次更新表ab时都必须更新该新表。

答案 1 :(得分:2)

只要名称数据类型 DataLength 中的列相同,就不会产生任何影响。

SQL SELECT statments必不可少,将VIEWS和TABLE视为同样的事情。