这个问题可能是蟾蜍特有的。我不知道 Oracle 如何存储视图,所以我将解释使用 Toad 时会发生什么。如果我得到一个特定于 Oracle 的答案,那就更好了。
我创建了一个相当复杂的视图。为了更清楚,我已经很好地格式化了代码,并在需要的地方输入了一些注释。当我需要更改视图时,我使用 Toad 的“描述对象”窗口,我可以在其中找到一个脚本来重新创建视图。唯一的问题是我所有的格式都消失了。select 关键字之前的注释(但在“create view xxx as”之后)也会消失。
如果我输入这个脚本来创建一个视图:
create or replace view TestViewFormatting as
-- Here I have a long comment explaining the role of the
-- view and certain things to be aware of if changing it.
-- Unfortunately this comment will disappear...
select
name, --This comment will be kept
accountnumber --This also
from
debtable
where
name like 'S%';
当我稍后描述它时,Toad 将显示它:
DROP VIEW XXX.TESTVIEWFORMATTING;
/* Formatted on 04.07.2012 09:35:45 (QP5 v5.185.11230.41888) */
CREATE OR REPLACE FORCE VIEW XXX.TESTVIEWFORMATTING
(
NAME,
ACCOUNTNUMBER
)
AS
select name, --This comment will be kept
accountnumber --This also
from debtable
where name like 'S%';
请注意,第一条评论已经消失,格式完全不同。
我怀疑 Oracle 不存储视图的代码,只是一些解析的版本,当 Toad 调出脚本时,它会反转这个解析的版本并即时生成一个脚本。
我需要做什么才能使 Toad/Oracle 保持原始格式?
(PS:我知道我可以更改 Toad 的代码格式化程序的设置,但这不是我想要做的。由于我过去的一些有问题的选择,这个特定的视图有几个级别的内联视图,我需要一个非常具体的格式化以明确发生了什么)