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

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

CREATE OR REPLACE FUNCTION xx_p( id IN VARCHAR2) RETURN VARCHAR2 isPRAGMA AUTONOMOUS_TRANSACTION;beginend;