您的產品價格表是否有某種修改日期或最後修改的字段?如果是這樣,請確保你正在更新這些。另外,如果使用你的腳本,你應該設置回顯和後臺處理日誌文件。您的腳本應該是這個樣子:
-- 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