培训机构的oracle学习笔记5.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库查询的结果本质上是一个游标 所以在调用一个查询功能,得到的其实是一个游标 ,然后从游标中将结果 loop 出来 . 将游标看成数据库对其他应用程序提供数据的接口。 游标返回所有学生信息 -和欢迎消息 -使用 sql/plus 调用存储过程显示所有游标数据 -in out 模 式的使用 注意: 函数的返回值类型问题,参数的模式 in 、 out 、in out 返回所有学生信息 function querystu return rec is rrc rec; begin open rrc for select * from stu; return rrc; end; 调用 declare type re is ref cursor; rre re; rs stu%rowtype; begin rre:=p_stumanger.querystu; loop fetch rre into rs; exit when rre%notfound; dbms_output.put_line(rs.sid||rs.stno||rs.sname||rs.sage||rs.sqq); end loop; end; --根据条件查询,返回所有学生信息和欢迎消息的函数 procedure querystu(s_sex stu.ssex%type,msg out varchar2 ,re out rec) is begin open re for select * from stu; msg:= 欢迎您查询本系统 ; end; 调用 declare s_sex stu.ssex%type; msg varchar2(100); type r is ref cursor; rr r; s stu%rowtype; begin p_stumanger.querystu(s_sex=s_sex,msg = msg,re = rr); loop fetch rr into s; exit when rr%notfound; dbms_output.put_line(s.sid); end loop; end; user_objects 数据字典,查询所有的对象 select * from user_objects; select * from user_objects where OBJECT_TYPE=FUNCTION; 使用 sql/plus 调用存储过程显示所有游标数据 ,注意,和 pl/sql 程序块区分开 定义包 定义过程,过程可定义游标类型的参数 out 模式 sqlvar r refcursor; sqlset autoprint on; sqlexec 包名 . 过程名 (:r); 注意:in out模式的使用,此例ena参数既可以接收值,又可以带出去一个同类型的值 create or replace package body pemp is procedure query(ena in out emp.ename%type) is re emp%rowtype; begin select * into re from emp where ename=ena; ena:=你好; end; end; 调用 declare en emp.ename%type; en:=SMITH; pemp.query(ena=en);1、en将值传给ena 2、过程执行完毕,由 ena再将值带出来传给 en dbms_output.put_line(en); end; 学生管理系统 -包头-包体 -6个功能函数或过程 模块一:学生基本信息管理模块包,此模块包包含 6 个功能函数或过程,分别如下说明 包头 create or replace package p_stumanger is --type t_stu is table of stu%rowtype index by binary_integer; type rec is ref cursor; --新生注册 function addstu(s_name stu.sname%type,s_sex stu.ssex%type,s_age stu.sage%type,s_add stu.sadd%type,s_qq stu.sqq%type,s_email stu.semail%type) return int; --学生删除 procedure delstu(s_id in out stu.sid%type); --更新学生 procedure updatestu(rstu stu%rowtype,r out int); --复制表数据到另一个表中 function copystu(t rec,m

文档评论(0)

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

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

1亿VIP精品文档

相关文档