Oracle中PL/SQL的执行部分和各种流程控制

您所在的位置:网站首页 plsql哪一部分实现对数据的操作 Oracle中PL/SQL的执行部分和各种流程控制

Oracle中PL/SQL的执行部分和各种流程控制

2024-07-16 18:33:46| 来源: 网络整理| 查看: 265

Oracle中PL/SQL的执行部分和异常部分

一.PL/SQL的执行部分。

赋值语句。

    赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值;另一种是通过SQL查询结果赋值。

    用户赋值举例:  

set serveroutput on; accept abc prompt '请输入abc的值'; DECLARE a int:= &abc; BEGIN dbms_output.put_line(a); END;

    查询赋值举例: 

set serveroutput on; DECLARE str varchar2(20); BEGIN select ename into str from emp where empno='7369'; dbms_output.put_line(str); END; 流程控制语句。

    PL/SQL的主要控制语句如下:

      1.if...then      elsif … then      end if;

        判断if正确则执行then,否则执行else(elsif为嵌套判断)

        注意elsif,里面少一下e.

      2.Case  var  when … then    when … then   end

        有逻辑的从数值中做出选择

      3.Loop     exit    end loop

        循环控制,用判断语句执行exit

      4.Loop       exit when …        end loop

        同上,当when为真时执行exit

      5.while..loop         end loop

        当while为真时循环

      6.for...in...loop        end loop

        已知循环次数的循环

    因为流程控制比较多,在这里就不一一举实例了,写几个比较经典的程序给大家看一下。

    ********打印9*9乘法表*********

        for in..loop

set serveroutput on; DECLARE i number; j number; BEGIN for i in 1..9 loop for j in 1..i loop dbms_output.put(i||'*'||j||'='||(i*j)||' '); end loop; dbms_output.put_line(''); end loop; END;

        while  loop

set serveroutput on; declare i number:=1; j number:=1; begin while i10 then exit; end if;  换成exit when i>10;这样就成为了loop ..exit when .. end loop 结构。

  *********输入一个字符,判断是字母、数字还是其他字符****************

    if then elsif else

set serveroutput on; declare i_char varchar2(2); begin i_char:=&abc; if regexp_like(i_char,'^[a-z]$') then dbms_output.put_line('输入的是字母'); elsif regexp_like(i_char,'^[0-9]$') then dbms_output.put_line('输入的是数字'); else dbms_output.put_line('输入的是其他字符'); end if; end;

    case  when

set serveroutput on; declare i_char varchar2(2); i_result varchar2(30); begin i_char:=&abc; i_result:= case when regexp_like(i_char,'^[a-z]$') then '输入的是字母' when regexp_like(i_char,'^[0-9]$') then '输入的是数字' else '输入的是其他字符' end; dbms_output.put_line(i_result); end;

注意:在提示窗口中输入的时候,字符串一定要加单引号,否则就会出错,本人每次在这里都要拌一下。  

SQL语句

  SQL语句就是数据库查询语句,比较简单就不在这里说了。

游标语句

二.异常部分。

  数据库中的异常跟java中的异常的机制和作用原理是一样的,只是代码和格式不一样,数据库中的异常分为三类:系统异常(预定义异常)、自定义异常以及引发应用程序异常。

  系统异常

     PL/SQL程序在运行过程中,可能会出现错误或异常现象

     例如:无法建立到Oracle的连接或用0做除数。好的程序应该对可能发生的异常情况进行处理,异常处理代码在EXCEPTION块中实现

     可以使用WHEN语句来定义异常。WHEN语句的使用方法如下:

      EXCEPTION

      WHEN THEN

      

       WHEN THEN

       

        ...

       WHEN OTHERS THEN

      

    常见的系统异常

 异常名称 异常码说明  NO_DATA_FOUND ORA-01403select into语句中没有返回任何记录  TOO_MANY_ROWSORA-01422 select into语句中返回多行数据。  ZERO_DIVDE ORA-01476试图用0作为除数。  DUP_VAL_ON_INDEX ORA-00001试图向唯一索引列插入重复值  INVALID_CURSORORA-01001 试图进行非法游标操作。  CURSOR_ALREADY_OPENORA-06511 试图打开一个已经打开的游标。  INVALID_NUMBERORA-01722 试图将数字转换为字符串。  VALUE_ERROR

在产生大小限制错误时出现。如,变量中的列值超出变量的大小

LOGIN_DENIED

 输入的用户名或者密码无效时出现。 自定义异常  

      当与一个异常错误相关的错误出现时,就会隐含触发该异常错误。用户定义的异常错误是通过显式使用 RAISE 语句来触发。当引发一个异常错误时,控制就转向到 EXCEPTION块异常错误部分,执行错误处理代码。

      对于这类异常情况的处理,步骤如下:

      在PL/SQL 块的定义部分定义异常情况:

        exception;

      在PL/SQL 块的执行部分RAISE异常:

      RAISE ;

      在PL/SQL 块的异常情况处理部分对异常情况做出相应的处理。

      WHEN THEN

        代码...

引发应用程序异常


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭