网站大量收购闲置独家精品文档,联系QQ:2885784924

第14章PLSQL程序设计.ppt

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

2007-9 东北大学东软信息学院计算机系 * 1303 2007-9 东北大学东软信息学院计算机系 * 内层出现异常:no data found 1301 2007-9 东北大学东软信息学院计算机系 * 内层出现异常:too many rows 2007-9 东北大学东软信息学院计算机系 * 2007-9 东北大学东软信息学院计算机系 * 1201 2007-9 东北大学东软信息学院计算机系 * * 无需定义循环变量 无需定义游标 查询结果可以是多行 BEGIN FOR v_emp IN (select * from emp where deptno=10) LOOP DBMS_OUTPUT.PUT_LINE( v_emp.empno|| || v_emp.ename); END LOOP; END; 隐式FOR游标 * 预定义的异常 异常情况名 错误代码 描述 CURSOR_ALREADY_OPEN ORA-06511 尝试打开已经打开的游标 INVALID_CURSOR ORA-01001 不合法的游标操作(如要打开已经关闭的游标) NO_DATA_FOUND ORA-01403 没有发现数据( SELECT INTO ) TOO_MANY_ROWS ORA-01422 返回了多行数据(SELECT INTO) INVALID_NUMBER ORA-01722 转换成数字失败 (‘X’) VALUE_ERROR ORA-06502 截断、算法或转换错误,通常出现在赋值错误 ZERO_DIVIDE ORA-01476 除数为0 ROWTYPE_MISMATCH ORA-06504 主机游标变量与PL/SQL游标变量类型不匹配 * 如何判定字符串是合法数字? DECLARE V_INPUT VARCHAR2(2):=AB; V_EMPNO NUMBER; V_EMP EMP%ROWTYPE; BEGIN V_EMPNO:=TO_NUMBER(V_INPUT); SELECT * INTO V_EMP FROM EMP WHERE EMPNO=V_INPUT; VALUE_ERROR INVALID_NUMBER * EXCEPTION WHEN VALUE_ERROR THEN DBMS_OUTPUT.PUT_LINE(‘不是数字); WHEN INVALID_NUMBER THEN DBMS_OUTPUT.PUT_LINE(‘不是数字); END; * 查询名为SMITH的员工工资,如该员工不存在,则输出“There is not such an employee!”;如存在多个同名的员工,则输出所有员工号和工资。 DECLARE v_sal emp.sal%type; BEGIN SELECT sal INTO v_sal FROM emp WHERE ename=SMITH; DBMS_OUTPUT.PUT_LINE(v_sal); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE(There is not such an emplyee!); WHEN TOO_MANY_ROWS THEN FOR v_emp IN (SELECT * FROM emp WHERE ename=SMITH) LOOP DBMS_OUTPUT.PUT_LINE(v_emp.empno|| ||v_emp.sal); END LOOP; END; 预定义异常及其处理 * 动态SQL EXEC IMMEDIATE … USING … INTO … 什么时候用?在SQL语句中: 来源表不确定 目标字段不确定 查询条件不确定: select * from emp “where sal1000” 还是 “where sal1000” “where sal1000” 还是 “where sal2000” * 理论课 考试时间:闭卷,120分钟 题型分布 选择:1分 X 14 判断:1分X 10 名词解释:5分X 4 简答:6分X 6 写命令(若干小题):20分X 1 * 关系数据库的完整性约束: 实体完整性:主键 参照完整性:外键 用户定义完整性:(值)域 使用SCOTT用户登录SQL *PLUS的过程 conn / as sysdba alter user scott account unlock; conn scott/tig

文档评论(0)

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

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

1亿VIP精品文档

相关文档