--创建测试表
create table fn_dml_test
(
ID NUMBER(20),
text VARCHAR2(200)
)--创建函数
CREATE OR REPLACE FUNCTION fn_test(ID NUMBER) RETURN NUMBER
IS
/*
14551, 00000, "cannot perform a DML operation inside a query "
// *Cause: DML operation like insert, update, delete or select-for-update
// cannot be performed inside a query or under a PDML slave.
// *Action: Ensure that the offending DML operation is not performed or
// use an autonomous transaction to perform the DML operation within
// the query or PDML slave.
*/
pragma AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO fn_dml_test(id,text) values(ID,"success");
COMMIT;
RETURN 1;
EXCEPTION
WHEN OTHERS THEN
INSERT INTO fn_dml_test(id,text) values(ID,"fail");
COMMIT;
RETURN 0;
END;--查询验证
SELECT fn_test(1) from dual
更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12在Linux上Oracle如何启用异步IO?一组关于SQLAnywhere12和MongoDB的benchMark测试(写操作)相关资讯 Oracle数据库基础教程
- 在Oracle数据库中插入含有&符号的 (03/06/2013 09:20:14)
- Oracle 执行计划更改导致数据加工 (02/13/2013 14:45:04)
- 判断Oracle Sequence是否存在 (02/13/2013 14:32:26)
| - Oracle数据库中无法对数据表进行 (02/26/2013 14:24:58)
- Oracle 在同一台主机上建立用户管 (02/13/2013 14:40:58)
- Oracle em 无法启动,报not found错 (02/13/2013 14:29:48)
|
本文评论 查看全部评论 (0)