这个问题可能有点奇怪。但我正在寻找一种仅在用户发表评论时才允许更新表格的方法。更新普通表时,注释应保存在第二个审计表中。
我认为在 oracle 中,用户无法在执行“更新表集...”时发表评论。
所以我创建了自己的程序,用户可以在其中将语句和注释作为参数传递。没有此过程的更新会被触发器阻止。
create or replace
PROCEDURE Update_Table(stmt varchar2, comment varchar2) AS
BEGIN
Insert into audit_table values(stmt, comment);
Execute immediate stmt;
END Update_Table;
我对这个解决方案并不满意。所以也许有更简单的解决方案。