博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
存储过程/存储函数
阅读量:4571 次
发布时间:2019-06-08

本文共 1313 字,大约阅读时间需要 4 分钟。

区别:存储过程没有返回值,  存储函数有返回值(他们都可以通过out参数输出返回值,所以这句话到后边就不太对了)

存储过程和存储函数现在已经是一回事了,只是老版本的数据库里两者有区分,为了兼容老版本所以还分开称呼

一,存储过程

 1,打印Hello World:没有参数的存储过程,名字后不带()

create or replace procedure sayhello asbegin  dbms_output.put_line('Hello!');end;

2,带参数的存储过程,不commit事物,水调用谁commit (in:输入参数,out 输出参数)

create or replace procedure raiseSalary(eno in number)as  --变量  psal emp2.sal%type;begin  --得到涨薪前的工资  select sal into psal from emp2 where empno=eno;  --涨工资  update emp2 set sal=sal+100 where empno=eno;  --此处不用commit ,谁调用谁commit  --打印  dbms_output.put_line('涨工资前薪水:'||psal||',涨工资后薪水:'||(psal+100));end;

调用时候提交事物 commit

二、存储函数

例子一:查询某个员工的年薪

create or replace function queryEmpImcome(eno in number)return numberas  --变量  psal emp.sal%type;  pcomm emp.comm%type;begin  select sal,comm into psal,pcomm from emp where empno=eno;  return (psal+nvl(pcomm,0))*12;end;

过程和函数中的in 、out 参数

所以现在意义上,过程和函数就是一回事

例子:查询某个员工的姓名、薪水、工种,  使用存储过程实现

/* 查询某个员工的姓名,薪水,职位  */create or replace procedure queryEmpInfo(eno in number,                               pename out varchar2,                               psal out number,                               pjob out varchar2) asbegin  select ename,sal,job into pename,psal,pjob from emp where empno=eno;                        end;

plsql测试:

选择存储过程、还是存储函数?

 

 

转载于:https://www.cnblogs.com/lihaoyang/p/8670919.html

你可能感兴趣的文章
在 OC 中调用 Swift 代码
查看>>
Android仿腾讯应用宝 应用市场,下载界面, 有了进展button
查看>>
安卓|五大逆向软件下载
查看>>
5 OK6410裸机调试(不用Jlink)
查看>>
“模板”学习笔记(5)-----编译器在处理函数模板的时候都干了啥
查看>>
教你用shell写CGI程序
查看>>
窗口 对话框 Pop Dialog 示例
查看>>
ubuntu(centos) server安装vmware tools
查看>>
数据结构之最大不重复串
查看>>
为什么要配置sdk-tools/platform-toools?
查看>>
自己动手开发更好用的markdown编辑器-07(扩展语法)
查看>>
maven dependency:tree中反斜杠的含义
查看>>
队列的循环队列
查看>>
程序中的日期格式
查看>>
大众点评CAT错误总结以及解决思路
查看>>
从0开始学爬虫3之xpath的介绍和使用
查看>>
vim下正则表达式的非贪婪匹配
查看>>
一个python的计算熵(entropy)的函数
查看>>
spring源码学习——spring整体架构和设计理念
查看>>
模拟window系统的“回收站”
查看>>