我有一个关于 Oracle 中脚本的问题!
我在我的 BBDD 中的预建表上有一个物化 View (此 MV 属于用户 DAT_OWN,其他 2 个用户(APP 和 BO)在此 MV 上具有同义词) 我必须更改MV并添加一栏。我知道我需要删除这个 MV 并创建另一个 MV,但是附加同义词是什么?
我以前有一个脚本,例如:
DROP SYNONYM APP.STAT_VOZ;
CREATE SYNONYM APP.STAT_VOZ FOR DAT_OWN.STAT_VOZ;
DROP SYNONYM BO.STAT_VOZ;
CREATE SYNONYM BO.STAT_VOZ FOR DAT_OWN.STAT_VOZ;
DROP MATERIALIZED VIEW DAT_OWN.STAT_VOZ;
CREATE MATERIALIZED VIEW DAT_OWN.STAT_VOZ
ON PREBUILT TABLE WITH REDUCED PRECISION
REFRESH COMPLETE
START WITH TO_DATE('21-ene-2013 19:20:00','dd-mon-yyyy hh24:mi:ss')
NEXT (trunc(SYSDATE,'HH')+19/72)
WITH PRIMARY KEY
AS
SELECT TO_CHAR (SUM (COUNT)) AS sum_count,
start_date AS date_hour,
input_type AS input_type
FROM DAT_OWN.another_table
WHERE start_date > TO_CHAR (SYSDATE - 60, 'yyyymmdd')
GROUP BY start_date
为什么有人会在删除物化 View 之前先删除同义词 APP 并创建同义词 APP 删除同义词 BO 并创建同义词 BO?在我看来,我必须这样做
drop synonym1
drop synonym2
drop Mview
create Mview
create Synonym1
Create Synonym2
我确信我之前的程序员做得很好,但我不明白他们为什么这样做!有人能给我解释一下吗?
问候
最佳答案
您的原始脚本可能只是由“老派”开发人员编写的。大多数人习惯于在重新创建对象之前立即删除它们。正如您所注意到的,顺序并不重要。
现在大多数人使用CREATE OR REPLACE
语法而不是首先删除对象。 Here is a good explanation这个概念的。
关于sql - Oracle 脚本 - 物化 View 和同义词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14486776/