Oracle 11g数据库管理与开发基础教程 教学课件 作者 袁鹏飞 第13章.pptVIP

Oracle 11g数据库管理与开发基础教程 教学课件 作者 袁鹏飞 第13章.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
13.2 存储过程 上一章介绍的PL/SQL程序块都是匿名块,这种程序块只能执行一次,不能由其他程序调用。如果需要再次使用这些程序块,就只能重新编写程序块的内容。为了提高系统的应用性能,Oracle提供了另一种类型的程序块——命名块,这种程序块经过一次编译可多次执行。命名块包括存储过程、函数、触发器和包。 13.2.1 创建和调用存储过程 创建存储过程 调用CREATE PROCEDURE语句创建存储过程,其语法为: CREATE [OR REPLACE] PROCEDURE procedure_name[ (parameter1 [mode] datatype [DEFAULT | := value] [,parameter2 [mode] datatype [DEFAULT | := value], …])] AS | IS [declare_section] BEGIN statements; [EXCEPTION Exception_handler;] END [procedure_name]; 其中: OR REPLACE:用于替换已经存在的同名存储过程; procedure_name:指定所创建的存储过程名; parametern:参数名,多个参数之间用逗号(,)间隔; mode:参数的模式,存储过程参数的模式有3种:IN、OUT、IN OUT,分别表示输入参数、输出参数、输入/输出参数,输入参数需要在调用时赋值,并且在存储过程内不能修改;输出参数在调用时不能赋值,但在存储过程内为其赋值,并把它返回给调用程序;输入/输出参数兼具输入参数和输出参数的特点:调用者通过它向存储过程传递输入值,存储过程又通过它向调用者返回值; datatype:指定参数的类型,但不能指定精度或长度; declare_section:声明部分,作用与PL/SQL块声明部分相同; BEGIN…END之间是过程体,其中可以定义异常处理。 例1,下面代码创建一个存储过程ins_orders,该过程用于向orders表中插入一条新的订单信息,这个存储过程有5个参数,它们均为输入参数。 BOOKS_PUB@orcl_dbs CREATE OR REPLACE PROCEDURE ins_orders ( 2 p_ordid VARCHAR2, p_orderdate DATE DEFAULT SYSDATE, 3 p_ordqty NUMBER, p_payt VARCHAR2, p_bid NUMBER) 4 AS 5 BEGIN 6 INSERT INTO orders 7 VALUES (p_ordid, p_orderdate , p_ordqty, p_payt, p_bid); 8 END ins_orders; 9 / 过程已创建。 例2,下面代码创建存储过程upd_orders,该过程更改指定订单所订购的图书数量。upd_ orders有3个参数:p_ordid用于指定所要修改的订单id,为输入参数;p_orderdate返回所修改订单的签订日期,为输出参数;p_qty为一输入/输出参数,它向过程传递新的图书订购量,并返回该订单原来的图书订购量。 BOOKS_PUB@orcl_dbs CREATE OR REPLACE PROCEDURE upd_orders ( 2 p_ordid VARCHAR2, p_orderdate OUT DATE, p_qty IN OUT NUMBER) 3 AS 4 v_newqty NUMBER(5); 5 BEGIN 6 v_newqty := p_qty; 7 SELECT order_date, qty INTO p_orderdate, p_qty 8 FROM orders 9 WHERE order_id = p_ordid; 10 UPDATE orders 11 SET qty = v_newqty 12 WHERE order_id = p_ordid; 13 END upd_orders; 14 / 过程已创建。 存储过程调用 创建存储过程后,该过程以编译的形式存储在数据库服务器中。要执行存储过程,可以使用CALL语句或EXCECUTE语句,也可以在PL/SQL块中通过引用过程名来调用。 过程调用语句的语法为: {CALL | EXEC[UTE]} procedure_name [(parameter [, …

您可能关注的文档

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档