当前位置:操作系统 > Unix/Linux >>

函数和自治事务pragma autonomous_transaction

函数和自治事务pragma autonomous_transaction
 
        有的时候,希望在select语句中使用自己定义的函数,并且这个函数除了返回特定的值之外,还执行update,insert,delete等操作。 
 
对数据库有写操作(update,insert,delete,crate,alert,commit)的函数是无法简单的用SQL来调用的。 
 
        如何实现?关键是pragma autonomous_transaction  
        如下例子: 
       SQL> Create or replace function func_getid return int is 
          2   pragma autonomous_transaction; 
          3   vid int; 
          4  begin 
          5     select max(id) into vid from test_id; 
          6     update test_id set id=id+1; 
          7     commit; 
          8     return vid; 
          9  end; 
         10  / 
        
        Function created 
        
        SQL> select  func_getid from dual; 
        
        FUNC_GETID 
        ---------- 
                 1 
        
        SQL> select  func_getid from dual; 
        
        FUNC_GETID 
        ---------- 
                 2

 


CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,