已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out type) as-声明变量(变量名 变量类型)begin-存储过程的执行体end test;打印出输入的时间信息E.g:create or replace procedure test(workDate in Date) isbegindbms_output.putline('The input date is:'|to_date(workDate,'yyyy-mm-dd');end test;2、变量赋值变量名 := 值;E.g:create or replace procedure test(workDate in Date) isx number(4,2); begin x := 1; end test;3、判断语句:if 比较式 then begin end; end if;E.gcreate or replace procedure test(x in number) isbegin if x 0 then begin x := 0 - x; end; end if; if x = 0 then begin x: = 1; end; end if; end test;4、For 循环For . in . LOOP -执行语句 end LOOP; (1)循环遍历游标create or replace procedure test() asCursor cursor is select name from student; name varchar(20);beginfor name in cursor LOOP begindbms_output.putline(name); end; end LOOP;end test;(2)循环遍历数组 create or replace procedure test(varArray in myPackage.TestArray) as-(输入参数varArray 是自定义的数组类型,定义方式见标题6)i number;begin i := 1; -存储过程数组是起始位置是从1开始的,与java、C、C+等语言不同。因为在Oracle中本是没有数组的概念的,数组其实就是一张-表(Table),每个数组元素就是表中的一个记录,所以遍历数组时就相当于从表中的第一条记录开始遍历for i in 1.varArray.count LOOP dbms_output.putline('The No.'| i | 'record in varArray is:'|varArray(i); end LOOP; end test;5、While 循环while 条件语句 LOOP beginend; end LOOP;E.gcreate or replace procedure test(i in number) asbeginwhile i 10 LOOP begin i:= i + 1;end; end LOOP; end test;6、数组首先明确一个概念:Oracle中本是没有数组的概念的,数组其实就是一张表(Table),每个数组元素就是表中的一个记录。使用数组时,用户可以使用Oracle已经定义好的数组类型,或可根据自己的需要定义数组类型。(1)使用Oracle自带的数组类型x array; -使用时需要需要进行初始化e.g:create or replace procedure test(y out array) is x array; beginx := new array();y := x;end test;(2)自定义的数组类型 (自定义数据类型时,建议通过创建Package的方式实现,以便于管理)E.g (自定义使用参见标题4.2) create or replace package myPackage is - Public type declarations type info is record(name varchar(20), y number); type TestArray is table of info index by binary_integer; -此处声明了一个TestArray的类型数据,其实其为一张存储Info数据类型的Table而已,及TestArray 就是一张表,有两个字段,一个是name,一个是y。需要注意的是此处使用了Index by binary_integer 编制该Table的索引项,也可以不写,直接写成:type TestArray is table of info,如果不写的话使用数组时就需要进行初始化:varArray myPackage.TestArray; varArray := new myPackage.TestArray();end TestArray;7.游标的使用 Oracle中Cursor是非常有用的,用于遍历临时表中的查询结果。其相关方法和属性也很多,现仅就常用的用法做一二介绍:(1)Cursor型游标(不能用于参数传递)create or replace procedure test() is cusor_1 Cursor is select std_name from student where .; -Cursor的使用方式1 cursor_2 Cursor;beginselect class_name into cursor_2 from class where .; -Cursor的使用方式2可使用For x in cursor LOOP . end LOOP; 来实现对Cursor的遍历end test;(2)SYS_REFCURSOR型游标,该游标是Oracle以预先定义的游标,可作出参数进行传递create or replace procedure test(rsCursor out SYS_REFCURSOR) iscursor SYS_REFCURSOR; name varhcar(20);beginOPEN cursor FOR select name from student where . -SYS_REFCURSOR只能通过OPEN方法来打开和赋值LOOP fetch cursor into name -SYS_REFCURSOR只能通过fetch into来打开和遍历 exit when cursor%NOTFOUND; -SYS_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西消防抽考题库及答案
- 楼房购买合同协议书
- 施工师徒培养协议书
- 2026-2031年中国生态修复市场深度调查与产业竞争格局报告
- 智能电网原理及应用考试题及答案
- 文化墙装修合同范本
- 森叶煤气开户协议书
- 2026-2031全球及中国宠物用品行业发展现状调研及投资前景分析报告(版)
- 基于权重分析表的模糊逻辑算法赋能中央空调系统的深度研究
- 银行社会考试题库及答案
- 数控技术专业介绍
- 广元强兴模具有限公司模具氮化处理加工项目环评报告
- 2025年《社区警务工作规范(试行)》复习测试卷附答案
- 2025初中音乐学科教材教法考试综合测试卷及答案(共三套)
- 护理床旁交接班规范与实践
- 2025年饮料gmp试题及答案
- 低碳景观设计策略-洞察及研究
- 产品标签打印管理办法
- 备战2026年高考数学模拟卷(新高考Ⅰ卷专用)(考试版)
- SMT 操作员(锡膏印刷)笔试试题
- 全国大学生职业规划大赛《电子信息工程》专业生涯发展展示
评论
0/150
提交评论