0

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

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

4

2 回答 2

3

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

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

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

例子:

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

然后从视图中选择将始终反映对表ab.

如果将其替换为表,则每次更新表时都必须更新该新表ab.

于 2013-08-15T16:04:58.607 回答
2

只要Name DataTypeDataLength中的列相同,就不会产生影响。

SQL SELECT 语句必须将 VIEWS 和 TABLE 视为相同的事物。

于 2013-08-15T16:00:54.303 回答