Oracle视图sql注释错误
当我创建一个视图时,它有许多回车符和一些“-”注释记录代码行。虚构的例子:Oracle视图sql注释错误,sql,oracle,view,Sql,Oracle,View,当我创建一个视图时,它有许多回车符和一些“-”注释记录代码行。虚构的例子: CREATE VIEW ... AS SELECT P.ID AS PRODUCT_ID, P.PROD_DESC AS PRODUCT_DESC, P."COMMENT" AS PRODUCT_COMMENT, P.ACTIVE_IND AS PRODUCT_ACTIVE_IND, -- SKU.SKU AS SKU, SKU.PRES_DESC AS SKU_PRESENTATION_DE
CREATE VIEW ... AS
SELECT
P.ID AS PRODUCT_ID,
P.PROD_DESC AS PRODUCT_DESC,
P."COMMENT" AS PRODUCT_COMMENT,
P.ACTIVE_IND AS PRODUCT_ACTIVE_IND,
--
SKU.SKU AS SKU,
SKU.PRES_DESC AS SKU_PRESENTATION_DESC
FROM PRODUCTS P
LEFT JOIN SKUS SKU ON P.PRODUCT_ID = SKU.PRODUCT_ID
WHERE P.DELETED = 0 -- Non-deleted products only
AND SKU.DELETED = 0 -- Non-deleted SKUs only
AND P.CAT_ID NOT IN (1, 3) -- Exclude promo and sandbox items
ORDER BY P.ID
当最初实例化时,视图很好,当我导出DDL时,它看起来与实例化的格式相同。然而,一段时间后,视图SQL会被重新格式化,并神秘地将多行压缩为一行,有时会导致错误。基于上述内容的示例:
CREATE VIEW ... AS
SELECT
P.ID AS PRODUCT_ID,
P.PROD_DESC AS PRODUCT_DESC,
P."COMMENT" AS PRODUCT_COMMENT, P.ACTIVE_IND AS PRODUCT_ACTIVE_IND, SKU.SKU AS SKU, SKU.PRES_DESC AS SKU_PRESENTATION_DESCFROM PRODUCTS P LEFT JOIN SKUS SKU ON P.PRODUCT_ID = SKU.PRODUCT_IDWHERE P.DELETED = 0 -- Non-deleted products only AND SKU.DELETED = 0 -- Non-deleted SKUs only AND P.CAT_ID NOT IN (1, 3) -- Exclude promo and sandbox itemsORDER BY P.ID
关于结果的几点说明:
如前所述,当视图被实例化并且我立即得到DDL时,它看起来与创建它的方式完全相同。但是,在某些情况下,会发生上述情况。Oracle方面是否有什么事情会导致这种情况并试图重新格式化视图SQL?以前有人看到过这种情况吗视图SQL被重新格式化,并神秘地将多行压缩为一行,有时会导致错误“这种”重新格式化会导致什么样的错误"?好的,删除注释、折叠行和添加一些填充空格不应改变SQL语句。Oracle本身不会自动完成并重新格式化视图定义。如果DDL正在更改,则环境中的某些东西正在更改它——组织中的某个进程或组织中的某个人可以尝试查询视图(所有\u对象)的数据字典条目,然后检查last_ddl_时间值。如果视图确实在神秘地更改,last_ddl_时间值应该反映更改发生的时间。也许知道更改的时间可以帮助您跟踪更改的原因。您使用哪个SQL客户端运行这些语句?也许您受到一些奇怪的限制的影响在SQL*Plus中添加注释?感谢您的回复。1.如果--注释散布在代码行之间,并且全部放在一行中,则第一条注释之后的所有内容都会被无意中注释掉。2.确认没有人看到自动格式化或类似行为非常有用。3.我已经查看了上一次DDL——它比应该的要晚。4.工具是SQL开发人员。迹象有点指向OCD DBA或使用某种数据库清理类型工具的人的工作。这两种工具似乎都非常不必要,而且会引发风险。