0

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

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

4

1 回答 1

1

使用SELECT .. FROM USER_SOURCES AS OF TIMESTAMP(time you want) WHERE ... ORDER BY LINE;. 这将及时提供表格,从这里您可以使用MINUS或将其放入另一个表格并做任何您想做的事情。

它只保存最近的更改(取决于某些设置),但如果犯了一个小错误,它绝对是一个很棒的功能。

于 2013-02-15T15:44:17.313 回答