Oracle:比较两个版本的过程

时间:2013-02-15 14:50:12

标签: sql oracle

如果一个用户更改了过程的源代码,我想找到新版本和旧版本过程之间的差异,并将它们保存到表格中。
换句话说,我想找到添加,修改或删除的行。

我尝试使用带有“在架构上的ddl之前”的触发器,然后比较all_source视图中的源代码和函数ORA_SQL_TXT(sql_text)给出的源代码,但这不起作用,因为函数给出的源代码ORA_SQL_TXT(sql_text)未按行号排序。

1 个答案:

答案 0 :(得分:1)

使用SELECT .. FROM USER_SOURCES AS OF TIMESTAMP(time you want) WHERE ... ORDER BY LINE;。这将按照之前的时间给出表格,您可以使用MINUS或将其放入另一个表格中并执行您想要的任何操作。

它只保存最近的更改(取决于某些设置),但这是一个绝对精彩的功能,可以做一个小错误。