- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章节 plSQL
declare v_temp number(4); begin select empno into v_temp from emp where deptno=10; exception when too_many_rows then dbms_output.put_line(太多记录了); when others then dbms_output.put_line(error); End; 1 系统预定义异常 异常名称 ORACLE错误 说明 CURSOR_ALREADY_OPEN ORA-6511 试图打开一个已打开的光标 DUP_VAL_ON_INDEX ORA-0001 试图破坏一个唯一性限制 INVALID_CURSOR ORA-1001 试图使用一个无效的光标 INVALID_NUMBER ORA-1722 试图对非数字值进行数字操作 LOGIN_DENIED ORA-1017 无效的用户名或者口令 NO_DATA_FOUND ORA-1403 查询未找到数据 NOT_LOGGED_ON ORA-1012 还未连接就试图进行数据库操作 PROGRAM_ERROR ORA-6501 内部错误 ROWTYPE_MISMATCH ORA-6504 主变量和光标的类型不兼容 STORAGE_ERROR ORA-6500 内部错误 TIMEOUT_ON_RESOURCE ORA-0051 发生超时 练一练 查询并输出由用户输入的雇员编号及其部门名称,要求有异常处理。 1编写一个PL/SQL,计算5的阶乘并打印出来。(使用3种循环控制方式实现)。 2根据表emp中deptno字段的值,为姓名为‘JONES’的雇员修改工资;若部门号为10,则工资加100;部门号为20,加200;其他部门加400。 2非预定义异常错误 Oracle 定义了几千个异常,绝大多数只有错误编号和 相关描述,仅仅命名了若干个最常被用到的异常 。 可以使用 PRAGMA EXCEPTION_INIT(exception_name,oracle_error_code); 来将这些只有错误编号和相关描述的异常关联一个名字,然后就可以像对待预定义异常一样对待它了。 pragma exception_init 是一个编译时运行的函数,它只能出现在代码的声明部分,而异常名字必须在此之前被定义。 Declare c_null_error exception; pragma exception_init(c_null_error,-1400); Begin insert into dept values(null,’demo1’,’bj’); exception when c_null_error then dbms_output.put_line(‘不能向部门编号列插入null’); End; 3 记录异常 首先创建一张表,用来记录异常。 create table errorlog ( id number primary key, errcode number, errmsg varchar2(1024), errdate date ) 程序代码: declare v_deptno dept.deptno%type :=10; v_errcode number; v_errmsg varchar2(1024); 创建一个序列,用于记录当前的异常序号。 Create sequence seq_errorlog_id start with 1 increment by 1 begin delete from dept where deptno=v_deptno; commit; exception when others then rollback; v_errcode:=SQLCODE; v_errmsg:=SQLERRM; insert into errorlog values(seq_errorlog_id.nextval,v_errcode,v_errmsg,sysdate); commit; end; 9.5 游标 游标是一种PL/SQL控制结构,可以对SQL语句的处理进行显式控制,便于对游标的行数据逐条进行处理。 游标分类 显式游标 隐式游标 1、显式游标 显式游标是必须通过编写必要的PL/SQL例程来进行管理的游标。游标的整个生命期都在用户的控制之下,因此,用户可以详细地控制PL/SQL怎样在结果集中访问记录。
您可能关注的文档
- 第9章节 磁盘存储器管理Chapter 9 Disk Storage Management(1.ppt
- 第9章节 项目风险管理.ppt
- 第9章节 9.3 代数优化.ppt
- 第9章节 GPS测量数据处理.ppt
- 第9章节 Illustrator导出和打印.ppt
- 第9.1章节热力学.ppt
- 第9章节 图zzh.ppt
- 第9章节 地形图及其应用.ppt
- 第9章节 恒定电流 第2讲 闭合电路欧姆定律 LI.ppt
- 第9章节 磁存储器.ppt
- 2025年中国锻铁围栏市场调查研究报告.docx
- 2025年中国椭圆型市场调查研究报告.docx
- 2025年中国无蔗糖原味豆浆市场调查研究报告.docx
- 2025-2031年中国泛在电力物联网行业发展运行现状及投资潜力预测报告.docx
- 2025年中国制袋机零件市场调查研究报告.docx
- 2025年中国智能除垢型电子水处理仪市场调查研究报告.docx
- 2025-2031年中国甘肃省乡村旅游行业市场深度研究及投资策略研究报告.docx
- 2025-2031年中国干海产品行业市场发展监测及投资战略规划报告.docx
- 2025年中国全铝图解易拉盖市场调查研究报告.docx
- 2025年中国人造毛皮服装市场调查研究报告.docx
文档评论(0)