当前位置:数据库 > Oracle >>

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操作、提交或回滚其他操作并返回到调用事务的上下文然后继续调用事务。
 
自治事务调用后,事务完全与调用它的主事务独立。
不会看到任何主事务尚未提交的改变、不会共享主事务的锁或资源。自治事务的改变在自治事务提交后可以被其他事务可见。
自治事务可以调用其他自治事务,嵌套的层数没有限制。
 
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,