-----------------------------------------
--- update_order_line_status
-----------------------------------------
PROCEDURE update_order_line_status(p_line_id IN NUMBER
,p_return_status IN VARCHAR2) IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
IF p_return_status = fnd_api.g_ret_sts_success THEN
UPDATE cux_om_orders_lines_all cool
SET cool.process_status = 'COMPLETE'
WHERE cool.line_id = p_line_id;
ELSE
UPDATE cux_om_orders_lines_all cool
SET cool.process_status = 'ERROR'
WHERE cool.line_id = p_line_id;
END IF;
COMMIT;
自治事务处理
--------------------------------------------------------------------------------------------------------------
PRAGMA autonomous_transaction中文翻译过来叫“自治事务”(翻译的还算好理解),对于定义成自治事务的procedure,实际上相当于一段独立运行的程序段,这段程序不依赖于主程序,也不干涉主程序
自治事务的特点 第一, 这段程序不依赖于原有main程序,比如main程序中有未提交的数据,那么在自治事务中是查找不到的。 第二, 在自治事务中,commit或者rollback只会提交或回滚当前自治事务中的dml,不会影响到main程序中的dml。
--- update_order_line_status
-----------------------------------------
PROCEDURE update_order_line_status(p_line_id IN NUMBER
,p_return_status IN VARCHAR2) IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
IF p_return_status = fnd_api.g_ret_sts_success THEN
UPDATE cux_om_orders_lines_all cool
SET cool.process_status = 'COMPLETE'
WHERE cool.line_id = p_line_id;
ELSE
UPDATE cux_om_orders_lines_all cool
SET cool.process_status = 'ERROR'
WHERE cool.line_id = p_line_id;
END IF;
COMMIT;
END update_order_line_status;
自治事务处理
--------------------------------------------------------------------------------------------------------------
PRAGMA autonomous_transaction中文翻译过来叫“自治事务”(翻译的还算好理解),对于定义成自治事务的procedure,实际上相当于一段独立运行的程序段,这段程序不依赖于主程序,也不干涉主程序
自治事务的特点 第一, 这段程序不依赖于原有main程序,比如main程序中有未提交的数据,那么在自治事务中是查找不到的。 第二, 在自治事务中,commit或者rollback只会提交或回滚当前自治事务中的dml,不会影响到main程序中的dml。