您的产品价格表是否有某种修改日期或最后修改的字段?如果是这样,请确保你正在更新这些。另外,如果使用你的脚本,你应该设置回显和后台处理日志文件。您的脚本应该是这个样子:
-- updates.sql
set serveroutput on
set echo on
WHENEVER SQLERROR EXIT SQL.SQLCODE
spool on
spool updates.log
-- put updates here
commit;
spool off
登录到sqlplus中从同一目录作为该文件,并使用运行:@ updates.sql
的updates.log文件将有每个运行的语句。
如果您想从单独的更新语句列表中获取总数,则每次更新后都需要检查SQL%ROWCOUNT。类似的信息(未经测试):
declare
l_total pls_integer := 0;
begin
update product set x = 'foo' where y='bar';
l_total := l_total + SQL%ROWCOUNT;
update product set x = 'blah' where y='someval';
l_total := l_total + SQL%ROWCOUNT;
commit;
dbms_output.put_line(l_total);
end
/
这是一个基本的PL/SQL匿名块,并且可以与上述滑阀策略中使用。
最后,设置一个基本的日志表,其中包含消息字段,日志日期时间,一些上下文字段(消息来自何处等),msg类型(日志,错误)等。一个处理插入日志表(自治事务)的过程,然后在需要跟踪统计数据或任何其他数据(dbms_output非常有限)时使用日志过程。你的环境可能已经有了这样的东西,你只需要寻找它(或者问你公司的高级开发人员)。
今天我只用你的第一个例子来进行更新,它完美地工作。另外,我们一定会在下次团队会议上提出日志表的主意。如果我们没有一个,它会很高兴。 – Logarr
@记者好听。如果您想要一个简单的日志表和过程示例,请参阅http://stackoverflow.com/questions/4919437/dbms-output-put-line – tbone