《Oracle pl sql编程》.ppt

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Oracle pl sql编程》.ppt

Oracle pl/sql编程知识大全 制作人: 付飞武 存储过程 存储过程:又名为过程.Store Procedure 已经编译好的sql语句集,存储在数据库中,通过存储过程的名称调用它,而不需要编译.存储过程通过参数返回值. produre 关键字 使用格式: create [or replace] procedure 过程名[参数] is --定义变量 begin --执行体 exception --异常处理 end 过程名; 执行存储过程 exec call 查看存储过程结构: desc 存储过程名 查询存储过程: select * from user_procedures; 删除存储过程: drop procedure 存储过程名; 存储过程的三种参数类型 1)输入参数in --调用存数过程时候,传入到过程中的变量或称 使用: 变量名 in 变量类型 (定义参数的时候一定不要指定长度) 【默认为in,即不加in也可以】 2)输出参数out --调用存储过程时,会获得一个值 使用: 变量名 out 变量类型 (定义参数的时候一定不要指定长度) 有输出参数的存储过程,使用pl/sql调用 3) 又作为输入参数,右作为输出参数 in out 老师不介意这样写,容易搞混 In例题 例: 输入一个字符串,并将其打印 create or replace procedure my_pro1(v_ename in varchar2) is begin dbms_output.put_line(v_ename); end; 调用: **创建一个登录的存储过程,如果过程创建成功了,在传入一条新数据 ,以创建的存储过程依然对此新插入的数据有效** Out例题 例:-- 获得编号为7499这个人的姓名 create or replace procedure mypro2(v_ename out emp.ename%type) is begin select ename into v_ename from emp where empno=7499; end mypro2; --调用 declare v_name emp1.ename%type; begin mypro2(v_name); --将存储过程得到的值,赋给v_ename dbms_output.put_line(v_name); end; Out 例题(多表) 例:--显示编号为7566 通过存储过程返回参数获得 职员 编号姓名 部门编号 部门名称 所在地(使用记录类型) 和 使用视图 (一个查询语句不能同时赋值给两个记录类型) create view ed_view as select a1.*,d1.* from emp a1,dept d1 where a1.deptno=d1.deptno; create or replace procedure sp_pro(v_empno in emp.empno%type,v_emp out ed_view%rowtype) is begin select * into v_emp from ed_view where empno=v_empno; end; declare v_view ed_view%rowtype; begin sp_pro(7788,v_view); dbms_output.put_line(v_view.ename|| , ||v_view.dname); end; In out例题 例:--显示编号为7566 通过存储过程返回参数获得 职员 编号姓名 部门编号 部门名称 所在地(使用记录类型) 和 使用视图 (一个查询语句不能同时赋值给两个记录类型) create view ed_view as select a1.*,d1.* from emp a1,dept d1 where a1.deptno=d1.deptno; create or replace procedure sp_pro(v_empno in emp.empno%type,v_emp out ed_view%rowtype) is begin select * into v_emp from ed_view where empno=v_empno; end; declare v_view ed_view%rowtype; begin sp_pro(7788,v_view); dbms_output.put_line(v_view.ename|| , ||v_view.dname); end; 引用游标 游标在包中的特殊应用: cursor 名 is select 语

文档评论(0)

wfkm + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档