所以在oracle中有一个名为XYZ的VIEW,有人说,我们将用一个同名的TABLE替换它。
这会对在该视图上编写的现有SQL产生什么样的影响? 查询VIEW的语法是否与TABLE的语法相同?
答案 0 :(得分:3)
通过“...将其替换为表格...”我假设您的意思是创建的表具有视图引用的相同数据。换句话说,新表冗余地包含来自其他表(视图引用的那些表)的数据。
SELECT-Statements不需要更改 - 语法是相同的。
BUT:该视图会立即反映基础表格的变化。该表显然不是 - 它必须通过触发器或应用程序逻辑保持同步。因此,根据观点,这可能是一个相当大的变化。如果视图可更新,情况更是如此。
示例:
假设视图定义为... select a.key, b.name from a,b where b.key = a.b_ref
然后从视图中进行选择将始终反映对表a
和b
的更改。
如果您用表替换它,则每次更新表a
或b
时都必须更新该新表。
答案 1 :(得分:2)
只要名称数据类型和 DataLength 中的列相同,就不会产生任何影响。
SQL SELECT statments必不可少,将VIEWS和TABLE视为同样的事情。