欢迎投稿

今日深度:

Oracle FUNCTION与PROCEDURE的最大区别

Oracle FUNCTION与PROCEDURE的最大区别


Oracle FUNCTION与PROCEDURE的最大区别
 
Oracle function里面是可以允许有DML语句的,但是不能在查询的时候使用。
 
我们常用的function如:
select max(a) from table ;
 
这种调用方式是不能执行带有DML的FUNCTION的。
 
但是如果不用在SQL里面是可以有的
比如 dbms_output.put_line(func(...)); 
 
如果函数里面采用自治事务,是可以有DML 的。
 
什么是“自治事务”:
 
自治事务是可以在其他事务中调用的独立事务。
自治事务可以使事务离开调用事务的上下文执行SQL操作、提交或回滚其他操作并返回到调用事务的上下文然后继续调用事务。
 
自治事务调用后,事务完全与调用它的主事务独立。
不会看到任何主事务尚未提交的改变、不会共享主事务的锁或资源。自治事务的改变在自治事务提交后可以被其他事务可见。
自治事务可以调用其他自治事务,嵌套的层数没有限制。
 

www.htsjk.Com true http://www.htsjk.com/oracle/21933.html NewsArticle Oracle FUNCTION与PROCEDURE的最大区别 Oracle FUNCTION与PROCEDURE的最大区别 Oracle function里面是可以允许有DML语句的,但是不能在查询的时候使用。 我们常用的function如: select max(a) from table ; 这种...
相关文章
    暂无相关文章
评论暂时关闭