(甲骨文的PL/SQL)如何確定PL/SQL語句中的行/值拋出錯誤?
如果我有一個拋出一個錯誤一個簡單的SQL語句,即:
DECLARE
v_sql_errm varchar2(2048);
BEGIN
UPDATE my_table SET my_column = do_something(my_column)
WHERE my_column IS NOT NULL;
EXCEPTION
when others then
-- How can I obtain the row/value causing the error (unknown)?
v_sql_errm := SQLERRM;
insert into log_error (msg) values ('Error updating value (unknown): '||
v_sql_errm);
END;
是否有異常塊內的任何方式來確定該行/值該查詢遇到錯誤?我希望能夠記錄它,以便我可以進入並修改/更正導致錯誤的特定數據值。
根據下面的答案,似乎沒有辦法確定導致錯誤的實際行/值。最好的解決方案似乎是使用FOR循環迭代。 – 2009-06-03 16:41:14
相關問題:http://stackoverflow.com/questions/18458012/oracle-jdbc-how-to-know-which-row-throws-unique-key-constraint – Vadzim 2015-02-06 11:18:03