Oracle的function執行DML操作

Oracle的function並不支持DML操作,但可以使用一段指令,讓這段pl/sql成為獨立的事務。

  当使用 PRAGMA AUTONOMOUS_TRANSACTION 时,可以在一个过程或函数的独立代码块中执行数据库操作,而不受外部事务的影响。这意味着内部事务的提交或回滚不会影响外部事务的提交或回滚,但是這對并發的安全性有威脅,因此使用前注意你的sql使用場景。

CREATE OR REPLACE FUNCTION xx_p(
   id IN VARCHAR2
) 
RETURN VARCHAR2 is
PRAGMA AUTONOMOUS_TRANSACTION;
begin

end;

你可能感兴趣的:(Oracle,oracle,数据库)