当前位置: 首页> 财经> 创投人物 > 015.PL-SQL编程—块

015.PL-SQL编程—块

时间:2025/7/12 19:52:01来源:https://blog.csdn.net/weixin_50296259/article/details/141884390 浏览次数:0次

无奋斗不青春

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈
优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集👈👈

分隔线
在这里插入图片描述

PL-SQL编程—块

        • 课外小练习

  • 块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上就是编写pl/sql块。要完成相对简单的应用功能,可能只需要编写一个pl/sql块;但是如果要实现复杂的功能,可能需要在一个pl/sql块中嵌套其他的pl/sql块。

  • 块结构示意图

    • pl/sql块由三部分构成:定义部分、执行部分、例外处理部分
    decleare/*定义部分:定义常量、变量、游标、例外、复杂数据类型*/
    begin/*执行部分:要执行的pl/sql语句和sql语句*/
    exception/*例外处理部分:处理运行的各种错误*/
    end;
    
    • 在这里插入图片描述

    • 定义部分从declare开始,该部分可选

    • 执行部分从begin开始,该部分必须

    • 例外处理部分从exception开始,该部分可选

  • pl/sql块实例部分

  • 实例1:只包括执行部分的pl/sql块

    set serveroutput on --打开输出选项
    set serveroutput off --关闭输出选项-- 最简单的块内容开始
    begindbms_output.put_line('Hello world');
    end;-- 说明:dbms_output是oracle所提供的包。该包包含一些过程,put_line就是dbms_output包的一个过程
    
    • 在这里插入图片描述

    • set serveroutput on:执行之后会打印结果

    • set serveroutput off:执行之后不会打印结果

  • 实例2:包含定义部分和执行部分的pl/sql、块

    declare--定义变量v_ename varchar2(5);
    begin--执行过程select ename into v_ename from emp where empno=&no;--将结果输出到控制台dbms_output.put_line('员工姓名:'||v_ename);
    end;
    
    • 语句解释
    select ename into v_ename from emp where empno=&no;
    
    • empno=&no:&地址符表示此处的内容从控制台输入获取(no是自己取得变量名)

    • into v_ename:将查询到的结果存储到v_ename这个变量中

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 追加:查询多个信息(员工编号、姓名、工资)

      declare--定义变量v_ename varchar2(5);v_empno varchar2(4);v_sal number(7,2);
      begin--执行过程select ename,empno,sal into v_ename,v_empno,v_sal from emp where empno=&no;--将结果输出到控制台dbms_output.put_line('员工编号:'||v_empno||' |员工姓名:'||v_ename||' |工资待遇:'||v_sal);
      end;
      
    • 在这里插入图片描述

  • 实例3:包含定义部分、执行部分和例外处理部分的pl/sql块

    • 为了避免pl/sql程序的运行错误,提高pl/sql的健壮性,应该对可能得错误进行处理
    • 比如实例2中,如果输入了不存在的员工编号,就应该做例外处理
    • 相关说明:oracle实现预定义了一些例外,no_data_found就在找不到数据的例外
    declare--定义变量v_ename varchar2(5);v_empno varchar2(4);v_sal number(7,2);
    begin--执行过程select ename,empno,sal into v_ename,v_empno,v_sal from emp where empno=&empno;--将结果输出到控制台dbms_output.put_line('员工编号:'||v_empno||' |员工姓名:'||v_ename||' |工资待遇:'||v_sal);
    exception--异常处理when no_data_found thendbms_output.put_line('员工编号有误,请重新输入!');
    end;
    
    • 在这里插入图片描述

    • 在这里插入图片描述

课外小练习
  • 修改打印格式,让输出更美观

    declare--定义变量v_ename varchar2(5);v_empno varchar2(4);v_sal number(7,2);
    begin--执行过程select ename,empno,sal into v_ename,v_empno,v_sal from emp where empno=&empno;--将结果输出到控制台dbms_output.put_line('员工编号'||' |员工姓名'||' |工资待遇');dbms_output.put_line(rpad(v_empno,8,' ')||' |'||rpad(v_ename,8,' ')||' |'||rpad(v_sal,8,' '));
    exception--异常处理when no_data_found thendbms_output.put_line('员工编号有误,请重新输入!');
    end;
    
  • 在这里插入图片描述

  • 在这里插入图片描述

关键字:015.PL-SQL编程—块

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: