Chinaunix首页 | 论坛 | 博客
  • 博客访问: 275507
  • 博文数量: 70
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 531
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-12 20:22
个人简介

1.01^365=37.8 0.99^365=0.03

文章分类

全部博文(70)

文章存档

2017年(9)

2016年(4)

2015年(14)

2014年(43)

我的朋友

分类: Oracle

2014-03-07 09:38:43

打印至控制台(无显示):

BEGIN

DBMS_OUTPUT.PUT_LINE('Hey look, ma!');

END;

/



打印至控制台(有显示):

SET SERVEROUTPUT ON

BEGIN

DBMS_OUTPUT.PUT_LINE('Hey look, Ma!');

END;

/



如果想要dbms_output.put_line()等方法的输出能够在客户端看见的话,请




set serverouput on;

例子:

declare

     empname emp.ename%type;

     sno emp.empno%type;

     iCount int:=0;

begin

     sno:='7369';

     empname:='jade';

     dbms_output.put_line('employee no is '||sno||' employee name is '||empname);

     select empno,ename into sno,empname from emp where empno='7369';

     dbms_output.put_line('employee no is '||sno||' employee name is '||empname);

     select count(*) into iCount from emp where sal>2000;

     if iCount>0  then

         dbms_output.put_line('有工资大于2000的人的信息'||iCount);

     else

         dbms_output.put_line('没有');

     end if;

end;





异常




如同JVM一样,Oralce是最终异常处理人员;但是他们的处理结果对用户而言是不好理解的,因为他们的语言是如此地不友好,如此的ugly;

所以我们最好是自己捕获处理异常;




步骤:

1.声明异常

2.引发异常

3.处理异常




类型:




1, 预定义的异常:不需要显式声明;dbms_standard程序包里有定义;

例子:    dbms_output.put_line('employee job is '||empjob);

      exception

               when no_data_found then

                dbms_output.put_line('no data return');




如果不处理异常,程序就会报告Error而不是异常,不同于Java;

但是程序流程是一样的,出错后,后面的代码都不再执行,直接退出;

用户处理的话,出错后,处理后,其他的可以继续执行错误处理后面的代码,这和Java一样;




When others then




               处理动作;




这里的others表示未知的异常发生时;这是个很保险的方法,类似用Exception的效果;其他的异常都是others的一个子类型;





2, 非预定义的异常:数据库本身不知道不能控制的,比如操作系统崩溃;




Oralce服务器错误

网络或者机器I/O错误





3, 用户定义的异常:有个类型叫exception类型




例子:




1  declare

  2        dup_value exception;

  3        icount int:=0;

  4  begin

  5        select count(*) into icount from place

  6            where placeid='001';

  7        if icount>0 then




  8               raise dup_value;




  9        end if;

10  exception

11        when dup_value then

12             dbms_output.put_line('already have the note');

13* end;

already have the note

阅读(9946) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~