oracle中 procedure(存储过程)和function(函数)本质区别
发布时间 - 2026-01-10 22:53:52 点击率:次 Oracle function里面是可以允许有DML语句的,但是不能在查询的时候使用。

我们常用的function如:
select max(a) from table ;
这种调用方式是不能执行带有DML的FUNCTION的。
但是如果不用在SQL里面是可以有的
比如 dbms_output.put_line(func(...));
如果函数里面采用自治事务,是可以有DML 的。
什么是“自治事务”:
自治事务是可以在其他事务中调用的独立事务。
自治事务可以使事务离开调用事务的上下文执行SQL操作、提交或回滚其他操作并返回到调用事务的上下文然后继续调用事务。
自治事务调用后,事务完全与调用它的主事务独立。
不会看到任何主事务尚未提交的改变、不会共享主事务的锁或资源。自治事务的改变在自治事务提交后可以被其他事务可见。
自治事务可以调用其他自治事务,嵌套的层数没有限制。
Oracle FUNCTION与PROCEDURE的最大区别小结
1、标识符不同。函数的标识符为FUNCTION,过程为:PROCEDURE。
2、函数中一般不用变量形参,用函数名直接返回函数值;而过程如有返回值,则必须用变量形参返回。
3、过程无类型,不能给过程名赋值;函数有类型,最终要将函数值传送给函数名。
4、函数在定义时一定要进行函数的类型说明,过程则不进行过程的类型说明。
5、调用方式不同。函数的调用出现在表达式中,过程调用,由独立的过程调用语句来完成。
6、过程一般会被设计成求若干个运算结果,完成一系列的数据处理,或与计算无关的各种操作;而函数往往只为了求得一个函数值
function 可以使用在表达式中 x := func();procedure不能
function 可以做为表达式 select func() from dual;procedure 不能
function 不能BEGIN func();END;;procedure 可以
下图说明它们之间的区别:
以上所述是小编给大家介绍的oracle中 procedure(存储过程)和function(函数)本质区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# oracle
# function
# procedure区别
# function和procedure
# 详解oracle管道函数的用法(一行拆为多行)
# Postgresql源码分析returns setof函数oracle管道pipelined
# Oracle function函数返回结果集的3种方法
# MySQL与Oracle差异比较之五存储过程&Function
# Oracle管道函数pipelined function的用法小结
# 小编
# 在此
# 如有
# 出现在
# 能在
# 给大家
# 数据处理
# 可以使用
# 要将
# 能给
# 用在
# 来完成
# 所述
# 或与
# 给我留言
# 感谢大家
# 存储过程
# 若干个
# 返回值
# 层数
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
javascript读取文本节点方法小结
什么是javascript作用域_全局和局部作用域有什么区别?
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
Laravel如何实现用户注册和登录?(Auth脚手架指南)
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
Laravel如何创建自定义Facades?(详细步骤)
如何在Windows环境下新建FTP站点并设置权限?
Laravel如何使用.env文件管理环境变量?(最佳实践)
如何获取PHP WAP自助建站系统源码?
如何用花生壳三步快速搭建专属网站?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何在服务器上三步完成建站并提升流量?
微信公众帐号开发教程之图文消息全攻略
JavaScript模板引擎Template.js使用详解
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
无锡营销型网站制作公司,无锡网选车牌流程?
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
Laravel如何使用查询构建器?(Query Builder高级用法)
如何快速生成可下载的建站源码工具?
如何在建站之星网店版论坛获取技术支持?
LinuxCD持续部署教程_自动发布与回滚机制
装修招标网站设计制作流程,装修招标流程?
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
微信小程序 HTTPS报错整理常见问题及解决方案
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Android中AutoCompleteTextView自动提示
Swift开发中switch语句值绑定模式
Python结构化数据采集_字段抽取解析【教程】
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
Laravel怎么上传文件_Laravel图片上传及存储配置
高性能网站服务器配置指南:安全稳定与高效建站核心方案
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
如何在七牛云存储上搭建网站并设置自定义域名?
网站制作壁纸教程视频,电脑壁纸网站?
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
如何打造高效商业网站?建站目的决定转化率
JavaScript实现Fly Bird小游戏
Laravel如何集成Inertia.js与Vue/React?(安装配置)
node.js报错:Cannot find module 'ejs'的解决办法
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
canvas 画布在主流浏览器中的尺寸限制详细介绍
制作电商网页,电商供应链怎么做?
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
Laravel怎么使用Intervention Image库处理图片上传和缩放

