Oracle存储过程和存储函数创建方法(详解)

发布时间 - 2026-01-11 01:55:32    点击率:

select * from emp;

-----------------存储过程------------------------

--定义

   create[or replace] procedure 存储过程名称(参数名 [in]/out 数据类型)
   is/as
   begin

--逻辑表达式 

end [存储过程名称];

--定义存储过程计算年薪,并答应输出

  create or replace procedure proc_salyears(v_no in number)
   is
   sal_years number(9,2);
   begin

 --计算年薪

select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;

--输出

dbms_output.put_line(sal_years);
   end;

--调用存储过程

 方式1:

call proc_salyears(7788);

方式2:

begin
       proc_salyears(7369);
     end; 

--out参数的存储过程

--计算年薪并返回  

  create or replace procedure proc_salyears(v_no in number,sal_years out number)
   is
   begin

 --计算年薪

select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;
   end;

--调用存储过程

declare
   v_sal number(9,2);
  begin
     proc_salyears(7876,v_sal);
     dbms_output.put_line(v_sal);
  end;

-----------------存储函数------------

--定义

create or replace function 存储函数名(参数名 in/out 数据类型)
    return 数据类型
    is|as
    begin
        return 具体的数据;
    end [存储函数名称];

--定义存储函数名计算年薪

create or replace function fun_salyears(f_no number)
    return number
    is
  sal_years number(9,2);
    begin
    select sal*12+nvl(comm,0) into sal_years from emp where empno=f_no;
        return sal_years;
    end ;

--使用存储函数

declare
  sal_yeats number(9,2);
  begin
    sal_yeats := fun_salyears(7876);
    dbms_output.put_line(sal_yeats);
  end;
 

--可简写

begin
    dbms_output.put_line(fun_salyears(7369));
  end;

--------存储过程和存储函数的区别--------

存储过程多用于项目之间的数据共享,存储函数多被存储过程调用.

存储函数可以再sql语句中调用,存储过程不能.


# Oracle存储过程和存储函数创建  # Oracle存储过程基本语法介绍  # oracle 存储过程和函数例子  # oracle 存储过程详细介绍(创建  # 删除存储过程  # 参数传递等)  # Oracle中返回结果集的存储过程分享  # Oracle存储过程及调用  # Oracle存储过程返回游标实例详解  # oracle 在一个存储过程中调用另一个返回游标的存储过程  # Oracle存储过程入门学习基本语法  # oracle数据库中查看系统存储过程的方法  # Oracle存储过程新手入门教程(附学习用例)  # 存储过程  # replace  # procedure  # create  # nbsp  # number  # sal_years  # v_no  # br  # proc_salyears  # span  # style  # select  # emp  # color  # background  # ccffcc  # strong  # function  # declare 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel怎么使用Intervention Image库处理图片上传和缩放  Laravel模型事件有哪些_Laravel Model Event生命周期详解  历史网站制作软件,华为如何找回被删除的网站?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何快速打造个性化非模板自助建站?  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  智能起名网站制作软件有哪些,制作logo的软件?  如何在服务器上配置二级域名建站?  如何在IIS服务器上快速部署高效网站?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  网站建设要注意的标准 促进网站用户好感度!  如何用AI帮你把自己的生活经历写成一个有趣的故事?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  如何在建站主机中优化服务器配置?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Laravel如何处理和验证JSON类型的数据库字段  香港服务器租用费用高吗?如何避免常见误区?  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  Thinkphp 中 distinct 的用法解析  如何自定义建站之星网站的导航菜单样式?  javascript如何操作浏览器历史记录_怎样实现无刷新导航  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  如何在服务器上三步完成建站并提升流量?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  如何快速生成凡客建站的专业级图册?  jQuery 常见小例汇总  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  微信小程序 闭包写法详细介绍  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何快速上传建站程序避免常见错误?  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  如何在香港免费服务器上快速搭建网站?  制作旅游网站html,怎样注册旅游网站?  如何获取上海专业网站定制建站电话?  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  三星网站视频制作教程下载,三星w23网页如何全屏?  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  Android仿QQ列表左滑删除操作  Python文件操作最佳实践_稳定性说明【指导】  如何在阿里云通过域名搭建网站?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  微信小程序 input输入框控件详解及实例(多种示例)  如何在IIS中新建站点并配置端口与IP地址?  如何确保西部建站助手FTP传输的安全性?