--在应用程序中往往有些固定的数据库操作,我们常常为致谢固定的操作定义了一些存储过程。这些存储过程不仅

--可以简化客户端的应用程序的开发和维护。而且还可以提高应用的运行性能。

-- 创建存储过程的语法。

create [or replace] procedure [(参数)]

is|as

[局部变量声明]

begin

可执行语句

exception

异常处理

end

--在定义中 IS|AS 可以根据习惯选择IS 或者AS 除了定义部分。其余的语法同PL/SQL的语法。

例: 。

-- 1 ①一个无参的存储过程。

create or replace procedure proc_1--proc_1存储过程名称

is

i number(3);--定义变量

begin

i:=100;

dbms_output.put_line(i);

end;

--②调用存储过程。

begin

proc_1;

end;

--一个无参数的存储过程创建完毕

2 一个有参数的存储过程

存储过程定义的时候可以使用参数也可以不实用参数。

参数类型

· 在PL/SQL过程中,可以有3种类型的参数。

· IN参数:读入参数,主程序向过程中传递参数。

· OUT参数:输出参数,过程向主程序传递参数。

· IN OUT参数:这个参数,过程与主程序双向交流数据。

如果存储过程有OUT 或者IN OUT 类型的参数,那么存储过程就只能在PL/SQL

中被调用。不能使用EXECUTE 或者CALL调用。

一个输入参数的例子

create or replace procedure proc_2(myno in number)

is emprow emp%rowtype;--定义一个行类型的变量

begin

select * into emprow from emp where empno=myno;

dbms_output.put_line('员工姓名:'||emprow.ename||'员工薪水'||emprow.sal);

end;

--调用这个存储过程

begin

proc_2(7369);

end;

既有输入参数 又有输出参数

create or replace procedure proc_3(myno in number,mysal out emp.sal%type, myname out emp.ename%type)

is

emprow emp%rowtype;

begin

select sal,ename into mysal,myname from emp where empno=myno;

end;

--调用这个存储过程

declare

tempsal emp.sal%type;

empname emp.ename%type;

begin

proc_3(7369,tempsal,empname);

dbms_output.put_line('员工姓名'||empname||'员工薪水'||tempsal);

end;

oracle存储过程隐式函数,Oracle存储过程,函数。相关推荐

  1. oracle date 隐式转换,PL/SQL中的数据类型隐式转换规则

    1) During INSERT and UPDATE operations, Oracle converts the value to the datatype of the affected co ...

  2. oracle的隐式游标有哪些,Oracle隐式游标小例子

    1:隐式游标和显示游标的区别 * 不用声明游标 * 不用打开和关闭游标 * 必须使用INTO子句,结果只能是一条 2:隐式游标和显示游标的相同点 有相同的属性 3:小例子 DECLARE name V ...

  3. Oracle数据隐式乱码,正则匹配中文数据失败

    起因:相同数据,供述厂家不同,使用正则匹配时,不同厂家的数据匹配不到. 描述:导致此问题的发生原因为"数据编码不一致",如果仅凭肉眼壕无差异.此时需用Convert函数查看数据编码 ...

  4. Oracle 语言分类 数据类型 数据类型转换 常用函数 集合操作 子查询

    SQL分类 SQL(Structure Query Language)语言是数据库的核心语言.SQL语言共分为四大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL.1 ...

  5. oracle 多个分组函数,Oracle之分组函数

    Group by 1. Group by子句(利用group by子句分组数据,当select语句中使用到组函数和字段一起连用时会用到group by,否则会出现错误) Group by 把selec ...

  6. oracle隐式转换能禁用吗,Oracle隐式转换

    和其他的关系型数据库一样, oracle 中也能进行一些隐式的数据转换,这对我们写 SQL 语句有 非常 用,我们可以不必麻烦地手动转化很多类型的字符.虽然前面我们介绍了一些使用例如to_char,t ...

  7. 万恶之源:C语言中的隐式函数声明

    1 什么是C语言的隐式函数声明 在C语言中,函数在调用前不一定非要声明.如果没有声明,那么编译器会自己主动依照一种隐式声明的规则,为调用函数的C代码产生汇编代码.以下是一个样例: int main(i ...

  8. JavaScript高级day02-AM【函数的prototype、显式原型与隐式原型、原型链】

    笔记.视频.源码:JavaScript(基础.高级)笔记汇总表[尚硅谷JavaScript全套教程完整版] 目   录 P15 15.尚硅谷_JS高级_函数的prototype 15:04 1. 函数 ...

  9. 什么是C语言中的隐式函数声明?

    「1.什么是C语言的隐式函数声明」 在C语言中,函数在调用前不一定非要声明.如果没有声明,那么编译器会自动按照一种隐式声明的规则,为调用函数的C代码产生汇编代码.下面是一个例子: int main(i ...

最新文章

  1. SUN 论坛http://forums.sun.com/forum.jspa?forumID=840
  2. Storm入门之第一章
  3. 深入讲解JSP 2.0下的动态内容缓存技术
  4. pytorch dropout_PyTorch初探MNIST数据集
  5. 电商首焦素材的万能构图模板
  6. 步骤五 · 4-9 解决getElementsByClassName()兼容性 未解决
  7. 汽车常识全面介绍 - 刹车系统
  8. 网站跳出率(Bounce Rate)
  9. 全屏滚动插件之 fullpage.js
  10. 学习笔记5(类和对象)
  11. 六级考试-考前最后一背
  12. 什么是AOP? AOP .Net 框架,AOP 资源
  13. 数据压缩算法之zigZag--一种对负数友好的编码(2000多字总结)
  14. html2canvas解决图片空白,网络图片跨域
  15. 计算机系统中所存在的瓶颈
  16. 学习笔记:MAC协议 5GNR
  17. 国外生活必备的英文词汇
  18. Openwrt手动释放内存
  19. Ts官方文档翻译-Generic范型
  20. 35家巨头科技公司联合组成元宇宙标准论坛组织

热门文章

  1. list容器java_【Java容器】List容器使用方法及源码分析
  2. blockly和Java交互_blockly 基础学习(一)
  3. iOS 系统汉化的plist设置
  4. 用VS.NET2003制作WEB应用程序的安装包
  5. JS获取当前时间date()的用法
  6. 牵引力教育就业数据显示:很多大学毕业就等于失业?
  7. Promise 基础用法
  8. 别说我懂社交网络: 关于社交网络分析的一头雾水
  9. MYSQL--事务处理
  10. RHCE实验室NTP时间服务器配置最终版