栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第六章-PL/SQL编程基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第六章-PL/SQL编程基础

文章目录
  • 前言
  • 一、考核内容及要求
    • 要求
    • 知识点
    • 章节
  • 二、PL/SQL程序设计
    • 1、PL/SQL块
    • 2、程序结构
    • 3、流程控制
    • 4、游标的使用
    • 5、异常处理
  • 总结


前言

本博客仅做学习笔记,如有侵权,联系后即刻更改

科普:Oracle11g


一、考核内容及要求
要求
  • 掌握PL/SQL程序设计的基础知识
  • 能阅读与编写简单的数据处理程序
知识点
  • PL/SQL块的组成及运行
  • PL/SQL变量的分类与声明
  • 变量的数据类型(Boolean,number,int,char,varchar2,date……)
  • %TYPE变量、复合变量的声明与使用
  • 条件语句(if… then…,if…then…else,if…then…elsif,case条件语句)
  • 循环语句(loop…end loop,while,for循环语句)的编程应用
  • 游标的使用(隐式游标、游标的属性、cursor for loop句型、显式游标、游标FOR循环)
  • 异常处理(预定义异常、非预定义异常、用户定义的异常)
章节
  • 6.1,6.2,6.3,6.4,6.5,6.6
二、PL/SQL程序设计

参考文章

oracle在数据库中引入的一种过程化编程语言
1、PL/SQL块

set serveroutput on;设置在服务器端可以显示执行结果的功能
分为三个部分

  • declare
    –声明部分,可选。声明常量、变量或游标
  • begin
    –执行部分,必选。程序的主体,完成逻辑控制和运算
  • exception
    –异常部分,可选。纠正错误或给错误信息提示
    end; --结束
    / --告诉oracle代码结束了
    注意:在PL/SQL块中,每一条语句必须以分号结束
2、程序结构
  • 常量变量
    <变量名> <数据类型>[(长度):=<初始值>]
    <常量名> constant <数据类型>:=<常量值>

  • 数据类型
    1)number:数值
    2)varchar2(length):可变长度字符。最大长度4000字节
    3)date:日期类型
    4)boolean:布尔类型。true或false
    5)表名.列名%type:可以声明一个与指定列名类型相同的数据类型
    6)复合型变量:

  • 自定义记录类型
    type name is record ();
  • 表名%rowtype:
    根据数据表中行的结构定义一种特殊的数据类型
3、流程控制

条件控制

  • if-then-elsif语句。多分支条件判断,相当于java中的多重if,语法:
    if(条件1) then
    –语句1
    elsif(条件2) then
    –语句2
    …
    else
    –语句n
    end if;
  • case语句。相当于java中的switch语句语法:
    case <选择器>
    when <条件1> then 语句1;
    when <条件2> then 语句2;
    …
    when <条件n> then 语句n;
    end case;

循环控制

  • 分为四个部分
    初始条件
    循环条件
    循环操作
    循环变量
  • loop语句。先执行,再判断。类似于java中的do-while,语法:
    loop
    循环语句
    exit when 结束条件;
    end loop;
  • while语句。先判断,在执行,语法:
    while 条件语句 loop
    循环操作
    end loop;
  • for语句。可以控制循环次数,语法:
    for 循环变量 in [reverse] 最小值…最大值 loop
    循环语句
    end loop;
4、游标的使用

参考文章

分为三种

  • 隐式游标
    默认游标名:SQL
  • SQL%ROWCOUNT 整型
    代表DML语句成功执行的数据行数
  • SQL%FOUND 布尔型
    值为TRUE代表插入、删除、更新或单行查询操作成功
  • SQL%ISOPEN 布尔型
    DML执行过程中为真,结束后为假
  • 显式游标
  • 定义游标
    CURSOR 游标名[(参数 数据类型]
    IS SELECT语句;
  • 打开游标
    OPEN 游标名
    查询结果传送到游标工作区
  • 提取游标
    FETCH 游标名 INTO 记录变量
  • 关闭游标
    CLOSE 游标名;
  • 游标FOR循环
  • 定义游标
  • 作为for循环的循环体
    for i in cursor loop
    使用游标for循环,不能使用open、fetch、close语句
5、异常处理

参考文章

预定义异常

  • DUP_VAL_ON_INDEX
    试图通过一个重复值更新或插入一条语句,即违反了唯一性约束
  • NO_DATA_FOUND
    执行SELECT语句未查询到数据
  • TOO_MANY_ROWS
    未使用游标,SELECT语句返回了多行数据
  • ZERO_DIVIDE
    被零除

非预定义异常
要使用非预定义的Oracle异常,则用户必须首先进行定义
分为三步

  • (1)在PL/SQL块的declare定义部分定义异常名:
    EXCEPTION;
  • (2)使用pragma exception_init语句,将其定义好的异常名与标准的Oracle错误编号联系起来:
    pragma exception_init(, );
  • (3)在PL/SQL块异常的处理部分对异常情况做出相应的处理。
    WHEN exception_name THEN

自定义异常
通过显式使用 RAISE 语句来触发
分为三步

  • (1)在PL/SQL块的declare定义部分定义异常名:
    EXCEPTION;
  • (2)自定义条件判断:
    raise exception_name;
  • (3)在PL/SQL块异常的处理部分对异常情况做出相应的处理
    WHEN exception_name THEN
总结

小小励志

有些事你现在不做,一辈子都不会做了。
如果你想做一件事,全世界都会为你让路。
《搭车去柏林》

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996423.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号