我的部门经常在程序的顶部放置一个注释框,以解释该程序的基本用途以及一些修改历史记录和相关的工作订单号。我想用正在创建的一些新视图来做同样的事情。这可能吗?
我尝试将注释块放置在CREATE OR REPLACE之前,之后的各个位置,但是似乎删除了该选择上方的所有注释行。我们正在使用Oracle和PL / SQL Developer。
/*
PURPOSE
MULTI-LINE COMMENTS
WORK ORDER NUMBERS FOR MODIFICATIONS
ETC
*/
CREATE OR REPLACE VIEW SAMPLE_VIEW AS
SELECT SYSDATE
FROM DUAL
我没有收到任何错误消息。注释在已保存的sql文件中可见,但是在PL / SQL Developer中右键单击并查看视图时看不到注释。任何帮助将不胜感激。
答案 0 :(得分:1)
该语句从create
开始。之前的任何内容都不是视图定义的一部分,并且数据库会忽略它。 (对于过程或程序包,这是相同的:数据库将忽略create or replace
关键字之前的注释。)
解决方案很简单:将注释文本移到视图主体中。
CREATE OR REPLACE VIEW SAMPLE_VIEW AS
SELECT
/*
PURPOSE
MULTI-LINE COMMENTS
WORK ORDER NUMBERS FOR MODIFICATIONS
ETC
*/
SYSDATE AS DATE1
FROM DUAL
请注意,注释必须嵌入在查询中的SELECT关键字之后,否则编译器会将其合并。坦率地说,这是一个问题,但事实就是这样。
此外,请记住,我们可以使用COMMENT命令添加有关数据库对象(表或表列,统一审核策略,版本,索引类型,物化视图,挖掘模型,运算符或视图)的注释。这比将注释嵌入查询中和将表视为表的表视图(而不是PL / SQL单元)更干净。 Find out more。