《精编》存储过程操作理论课程

上传人:tang****xu1 文档编号:133146671 上传时间:2020-05-24 格式:PPT 页数:66 大小:4.22MB
返回 下载 相关 举报
《精编》存储过程操作理论课程_第1页
第1页 / 共66页
《精编》存储过程操作理论课程_第2页
第2页 / 共66页
《精编》存储过程操作理论课程_第3页
第3页 / 共66页
《精编》存储过程操作理论课程_第4页
第4页 / 共66页
《精编》存储过程操作理论课程_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《《精编》存储过程操作理论课程》由会员分享,可在线阅读,更多相关《《精编》存储过程操作理论课程(66页珍藏版)》请在金锄头文库上搜索。

1、第7章存储过程操作 主编 刘志成 本章学习导航 本章学习导航 本章学习要点 1 存储过程概述 2 OEM创建 调用 查看 修改和删除存储过程 3 PL SQL创建 调用 查看 修改和删除存储过程 4 创建 调用和删除函数 5 定义包头 包体 6 包中定义函数和存储过程 建议课时 12课时 课堂案例1 使用PL SQL编程 常量和变量 常量 常量是指在程序运行期间其值不能改变的量 例1 1 定义常量PI 3 14159 设置打开控制台输出SETSERVEROUTPUTON 声明一个变量或常量DECLAREPICONSTANTNUMBER 6 5 3 14159 BEGIN 输出指定变量或常量的值

2、DBMS OUTPUT PUT LINE PI PI END 其中 PUT LINE过程中使用的 用于连接输出内容的两部分 课堂案例1 使用PL SQL编程 常量和变量 变量 变量是指由程序读取或赋值的存储单元 用于临时存储数据 变量中的数据可以随着程序的运行而发生变化 每个变量都必须有一个特定的数据类型 可以是系统数据类型 也可以是自定义数据类型 例1 2 编写计算圆面积的PL SQL块 SETSERVEROUTPUTONDECLAREPICONSTANTNUMBER 6 5 3 14159 声明两个变量并赋初值v radiuFLOAT 2 v areaFLOAT BEGINv area P

3、I v radiu v radiu DBMS OUTPUT PUT LINE Area v area END 课堂案例1 使用PL SQL编程 条件结构 IF结构 例1 3 使用简单IF结构判断一个整数的奇偶性 SETSERVEROUTPUTONDECLAREv numberINTEGER 518 BEGINIFMOD v number 2 0THENDBMS OUTPUT PUT LINE v number 是一个偶数 ELSEDBMS OUTPUT PUT LINE v number 是一个奇数 ENDIF END 课堂案例1 使用PL SQL编程 条件结构 IF结构 例1 4 使用复杂I

4、F结构输出3个整数之中的最大者 课堂案例1 使用PL SQL编程 条件结构 CASE结构 例1 5 使用单一选择符进行等值比较的CASE结构将百分制成绩转换为5分制成绩 课堂案例1 使用PL SQL编程 条件结构 CASE结构 例1 6 使用多种条件进行非等值比较的CASE结构将百分制成绩转换为5分制成绩 课堂案例1 使用PL SQL编程 循环结构 While循环 例1 7 使用WHILE循环求1到100的所有正整数之和 SETSERVEROUTPUTONDECLAREiINTEGER 1 sINTEGER 0 BEGINWHILEi 100LOOPs s i i i 1 ENDLOOP DB

5、MS OUTPUT PUT LINE 1 2 100 s END 课堂案例1 使用PL SQL编程 循环结构 Loop循环 例1 8 使用LOOP循环求1到100的所有正整数之和 SETSERVEROUTPUTONDECLAREiINTEGER 1 sINTEGER 0 BEGINLOOPs s i i i 1 EXITWHENi 100 ENDLOOP DBMS OUTPUT PUT LINE 1 2 100 s END 课堂案例1 使用PL SQL编程 循环结构 For循环 使用FOR循环不需要显式声明循环控制变量的类型 而由PL SQL隐式提供 默认情况下 循环控制变量从下限值开始 每次

6、循环结束后自动增加1 直至超过上限值为止 若指定REVERSE参数 则循环控制变量从上限值开始 每次循环结束后自动减1 直至低于下限值为止 课堂案例1 使用PL SQL编程 循环结构 For循环 例1 9 使用不带REVERSE参数的FOR循环求1到100的所有正整数之和 例1 10 使用带REVERSE参数的FOR循环求1到100的所有正整数之和 课堂案例1 使用PL SQL编程 循环结构 跳转语句 例1 11 借助于GOTO跳转语句输出10以内第一个能同时被2和3整除的正整数 SETSERVEROUTPUTONDECLAREnumINTEGER 1 BEGINWHILEnum DBMS O

7、UTPUT PUT LINE num END 课堂案例1 使用PL SQL编程 常用系统函数 数学函数 课堂案例1 使用PL SQL编程 常用系统函数 数学函数 例1 12 测试常用数学函数的用法 SETSERVEROUTPUTONBEGINDBMS OUTPUT PUT LINE 8的绝对值为 ABS 8 DBMS OUTPUT PUT LINE 8的3次幂为 POWER 8 3 DBMS OUTPUT PUT LINE 8的平方根为 SQRT 8 DBMS OUTPUT PUT LINE 3 14159四舍五入到小数点后3位为 ROUND 3 14159 3 DBMS OUTPUT PUT

8、 LINE e EXP 1 DBMS OUTPUT PUT LINE 大于或等于 32 5的最小整数为 CEIL 32 5 DBMS OUTPUT PUT LINE 小于或等于 32 5的最大整数为 FLOOR 32 5 END 课堂案例1 使用PL SQL编程 常用系统函数 字符串函数 课堂案例1 使用PL SQL编程 常用系统函数 字符串函数 例1 13 测试常用字符串函数的用法 SETSERVEROUTPUTONBEGINDBMS OUTPUT PUT LINE a的ACSCII值为 ASCII a DBMS OUTPUT PUT LINE ACSCII值97对应的字符为 CHR 97

9、DBMS OUTPUT PUT LINE 字符串 HunanRailway 的长度为 LENGTH HunanRailway DBMS OUTPUT PUT LINE 将字符串 HunanRailway 全部转换为大写形式为 UPPER HunanRailway DBMS OUTPUT PUT LINE 将字符串 HunanRailway 全部转换为小写形式为 LOWER HunanRailway END 课堂案例1 使用PL SQL编程 常用系统函数 日期函数 课堂案例1 使用PL SQL编程 常用系统函数 日期函数 例1 14 测试常用日期函数的用法 SETSERVEROUTPUTONBE

10、GINDBMS OUTPUT PUT LINE 当前日期时间为 SYSDATE DBMS OUTPUT PUT LINE 当前月份的最后一天的日期为 LAST DAY SYSDATE DBMS OUTPUT PUT LINE 字符串对应日期 TO DATE 2007 5 24 YYYY MM DD DBMS OUTPUT PUT LINE 两个日期相差的月份 MONTHS BETWEEN 14 4月 99 SYSDATE END 课堂案例1 使用PL SQL编程 常用系统函数 转换函数 课堂案例1 使用PL SQL编程 常用系统函数 转换函数 例1 15 测试常用转换函数的用法 SETSERV

11、EROUTPUTONBEGINDBMS OUTPUT PUT LINE 转换为数据库字符集的ASCII字符串为 ASCIISTR 湖南铁道 DBMS OUTPUT PUT LINE 将当前日期转换为字符串类型数据为 CAST SYSDATEASVARCHAR2 DBMS OUTPUT PUT LINE 将字符串转换为ROWID数据类型为 CHARTOROWID AAAAFdl DBMS OUTPUT PUT LINE 字符集转换 CONVERT 湖南铁道 US7ASCII WE8ISO8859P1 END 课堂案例1 使用PL SQL编程 TYPE变量 Oracle9i以后的版本提供了 TYP

12、E定义方法 这样当数据表的字段类型修改后 PL SQL程序中相应变量的类型也自动修改 例1 16 使用 TYPE获取查询的商品的基本信息 SETSERVEROUTPUTONDECLAREv gIdGoods g ID TYPE v gNameGoods g Name TYPE v gPriceGoods g Price TYPE v gNumberGoods g Number TYPE BEGINSELECTg ID g Name g Price g NumberINTOv gId v gName v gPrice v gNumberFROMSCOTT GoodsWHEREg ID 01000

13、3 dbms output put line v gId v gName v gPrice v gNumber END 课堂案例1 使用PL SQL编程 ROWTYPE变量 与 TYPE类型类似 也可以在不确定查询列的类型的情况下 使用 ROWTYPE类型的变量存储查询的一行数据 例1 17 使用 ROWTYPE获取查询的商品基本信息 SETSERVEROUTPUTONDECLAREv GoodRecordGoods ROWTYPE BEGINSELECT INTOv GoodRecordFROMSCOTT GoodsWHEREg ID 010003 dbms output put line

14、v GoodRecord g ID dbms output put line v GoodRecord g Name dbms output put line v GoodRecord g Price dbms output put line v GoodRecord g Number END 课堂案例1 使用PL SQL编程 异常处理 为了提高应用程序的健壮性 开发人员必须考虑程序可能出现的各种错误 并进行相应的处理 在Oracle中 为了处理PL SQL应用程序的各种错误 Oracle提供了三种类型的异常 1 预定义异常 用于处理常见的Oracle错误 2 非预定义异常 用于处理预定义异常

15、所不能处理的Oracle错误 3 自定义异常 用于处理于Oracle错误无关的其他情况 课堂案例1 使用PL SQL编程 异常处理 系统预定义异常 课堂案例1 使用PL SQL编程 异常处理 系统预定义异常 例1 18 对Goods表中的插入的重复商品号进行异常处理 使用预定义异常 SETSERVEROUTPUTONBEGININSERTINTOSCOTT GoodsVALUES 010001 诺基亚6700Slide 01 1500 0 9 20 to date 2009 06 01 yyyy mm dd pImage 010001 gif 热点 彩屏 1600万色 TFT 240 320像

16、素 2 2英寸 EXCEPTIONWHENDUP VAL ON INDEXTHENdbms output put line 捕获到DUP VAL ON INDEX异常 dbms output put line 重复的商品编号 END 课堂案例1 使用PL SQL编程 异常处理 非预定义异常 使用非预定义异常需要包括以下三个步骤 1 在定义部分定义异常名 2 在异常和Oracle错误之间建立关联 需要使用伪过程EXCEPTION INIT 3 在异常处理部分捕捉并处理异常 例1 19 删除商品类别表 并处理ORA 2292错误 使用非预定义异常 SETSERVEROUTPUTONDECLAREe FKEXCEPTION 1 定义部分PRAGMAEXCEPTION INIT e FK 2292 2 建立关联关系BEGINDELETESCOTT TypesWHEREt Name 通信商品 EXCEPTIONWHENe FKTHEN 3 捕捉处理DBMS OUTPUT PUT LINE 该类别已被使用 END 课堂案例1 使用PL SQL编程 异常处理 自定义异常 使用自定义异常时 需要包括以

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号