码迷,mamicode.com
首页 > 数据库 > 详细

Oracle数据库之SQL基础和分支循环

时间:2017-08-18 22:24:28      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:class   数字   exit   oracle数据库   不能   2-2   bms   分支   oop   

一、SQL基础语言

DECLARE --声明
a varchar2(10); --变量或对象

BEGIN
  a:=小明;--  :=   表示给一个变量赋值
  dbms_output.put_line(a); --输出用 dbms_output.put_line()
  
END;

二、分支

DECLARE
  --声明
  A NUMBER(10);
  B NUMBER(10);

BEGIN

  A := 2;
  B := 3;
  
  IF A < B THEN
    DBMS_OUTPUT.PUT_LINE(a小于b);
  ELSIF A > B THEN --注意 ELSIF 的写法
    DBMS_OUTPUT.PUT_LINE(a大于b);
  ELSE
    DBMS_OUTPUT.PUT_LINE(a等于b);
  END IF;
  
END;

三、循环

第一种:(loop循环)

DECLARE

  M NUMBER(5);
  
BEGIN
  M := 5;
  
  LOOP
    EXIT WHEN M < 0;
    DBMS_OUTPUT.PUT_LINE(M);
    M := M - 1;
  END LOOP;
  
END;

执行结果:
技术分享

第二种:(while 循环

DECLARE

  M NUMBER(5);

BEGIN
  M := 5;

  WHILE M > 0 LOOP   --while 循环
    DBMS_OUTPUT.PUT_LINE(M);
    M := M - 1;
  END LOOP;

END;

执行结果:
技术分享

 

第三种:(for循环)

DECLARE

BEGIN

  FOR N IN 1 .. 5 LOOP
    --for 循环只能遍历像1~5这样的有规律的数字
    DBMS_OUTPUT.PUT_LINE(N);
  END LOOP;

END;

执行结果:
技术分享

四、处理异常

DECLARE
  M     NUMBER(10);
  SNAME VARCHAR2(10);

BEGIN

  M := 5;

  SELECT S.NAME INTO SNAME FROM Z_STUDENT S WHERE S.ID = M;
  DBMS_OUTPUT.PUT_LINE(查询结果: || SNAME);

END;

执行结果:
技术分享

然后抛出异常  exception

DECLARE
  M     NUMBER(10);
  SNAME VARCHAR2(10);

BEGIN

  M := 50; --改个不存在的值

  SELECT S.NAME INTO SNAME FROM Z_STUDENT S WHERE S.ID = M;
  DBMS_OUTPUT.PUT_LINE(查询结果: || SNAME);

EXCEPTION
  --抛出异常
  WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.PUT_LINE(没有查询到数据);
  
END;

执行结果:
技术分享

再举个例子:

DECLARE
  --声明
  A NUMBER(10);
  B NUMBER(10);
  NOZERO EXCEPTION; --定义nozero  为异常类型
BEGIN

  A := 2;
  B := 0;

  IF A = 0 OR B = 0 THEN
    RAISE NOZERO; --RAISE   抛出异常
  END IF;

  IF A < B THEN
    DBMS_OUTPUT.PUT_LINE(a小于b);
  ELSIF A > B THEN
    --注意 ELSIF 的写法
    DBMS_OUTPUT.PUT_LINE(a大于b);
  ELSE
    DBMS_OUTPUT.PUT_LINE(a等于b);
  END IF;

EXCEPTION
  WHEN NOZERO THEN
    DBMS_OUTPUT.PUT_LINE(a和b都不能为0!);
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(其他异常!);
  
END;

执行结果为:
技术分享

 

Oracle数据库之SQL基础和分支循环

标签:class   数字   exit   oracle数据库   不能   2-2   bms   分支   oop   

原文地址:http://www.cnblogs.com/sutao/p/7392208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!