2006-12-18

pl/sql语言入门

来源: 专家blog 作者:天助自助者 评论 0 条
   DECLARE
   BAD_ROWID EXCEPTION;
   X ROWID;
  PRAGMA EXCEPTION_INIT(BAD_ROWID,-01445);
  BEGIN
   SELECT ROWID INTO X FROM TAB
   WHERE ROWNUM=1;
  EXCEPTION WHEN BAD_ROWID THEN
   DBMS_OUTPUT.PUT_LINE('CANNOT QUERY ROWID FROM THIS VIEW');
  END;

  注重:-01445 因为PRAGMA EXCEPTION_INIT命令把这个变量(-01455)连接到

  这个ORACLE错误,该语句的语法如下:

PRAGMA EXCEPTION_INIT(exception_name, error_number);

  其中error_number是负数,因为错误号被认为负数,当定义错误时记住使用负号

  1.4.4 自定义异常

  异常不一定必须是oracle返回的系统错误,用户可以在自己的应用程序中创

  建可触发及可处理的自定义异常

  DECLARE
   SALARY_CODE VARCHAR2(1);
   INVALID_SALARY_CODE EXCEPTION;
  BEGIN
   SALARY_CODE:='X';
   IF SALARY_CODE NOT IN('A', 'B', 'C') THEN
   RAISE INVALID_SALARY_CODE;
   END IF;
  EXCEPTION WHEN INVALID_SALARY_CODE THEN
   DBMS_OUTPUT.PUT_LINE('INVALID SALARY CODE');
  END;

 1.5 在PL/SQL中单条记录的查询

  在PL/SQL内,有时在没有定义显式光标的情况下需要查询单条记录,并把记录的数据赋给变量。

  DECLARE
   ln_dno NUMBER;
   lvs_dname VARCHAR2(40);
  BEGIN
   SELECT DEPT_NO,DEPT_NAME
   INTO ln_dno,lvs_dname
   FROM dept
   WHERE DEPT_NO=1;
   DBMS_OUTPUT.PUT_LINE(TO_CHAR(ln_dno)||'.'||lvs_dname);
  EXCEPTION WHEN NO_DATA_FOUND THEN
   DBMS_OUTPUT.PUT_LINE('NO DATA_FOUND');
   WHEN TOO_MANY_ROWS THEN
   DBMS_OUTPUT.PUT_LINE('TOO_MANY_ROWS');
  END;

  1.6 用光标查询多条记录

  光标(CURSOR)是指向一个称为上下文相关区的区域的指针,这个区域在服务器的处理过程全局区(PGA)内,当服务器上执行了一个查询后,查询返回的记录集存放在上下文相关区,通过光标上的操作可以把这些记录检索到客户端的应用程序。
共7页: 上一页 [1] [2] 3 [4] [5] [6] [7] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:JPEG 简易文档 V2.14  
下一篇:现流行数据库程序开发工具的比较分析
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号