• Oracle的基本语法,存储函数及触发器


      1.PL/SQL

      PL/SQL是Oracle对 ql语言的过程化扩展,指在 SQL 命令语言中增加了过程处理语句,使SQL语言具有过程处理能力。把 SQL 语言的数据操纵能

      力与过程语言的数据处理能力结合起来,使得 PLSQL 面向过程但比过程语言简单、高效、灵活和实用。

      基本语法结构:

      [declare] -- 声明变量

      begin -- 代码逻辑

      [exception] -- 异常处理

      end;

      注意:end后的";"不能取消掉

      2.Oracle常用的异常

      命名的系统异常 产生原因

      ACCESS_INTO_NULL 未定义对象

      CASE_NOT_FOUND CASE 中若未包含相应的 WHEN ,并且没有设置 ELSE 时

      COLLECTION_IS_NULL 集合元素未初始化

      CURSER_ALREADY_OPEN 游标已经打开

      DUP_VAL_ON_INDEX 唯一索引对应的列上有重复的值

      INVALID_CURSOR 在不合法的游标上进行操作

      INVALID_NUMBER 内嵌的 SQL 语句不能将字符转换为数字

      NO_DATA_FOUND 使用 select into 未返回行

      TOO_MANY_ROWS 执行 select into 时,结果集超过一行

      ZERO_DIVIDE 除数为 0

      SUBSCRIPT_BEYOND_COUNT 元素下标超过嵌套表或 VARRAY 的最大值

      SUBSCRIPT_OUTSIDE_LIMIT 使用嵌套表或 VARRAY 时,将下标指定为负数

      VALUE_ERROR 赋值时,变量长度不足以容纳实际数据

      LOGIN_DENIED PL/SQL 应用程序连接到 oracle 数据库时,提供了不正确的用户名或密码

      NOT_LOGGED_ON PL/SQL 应用程序在没有连接 oralce 数据库的情况下访问数据

      PROGRAM_ERROR PL/SQL 内部问题,可能需要重装数据字典& pl./SQL 系统包

      ROWTYPE_MISMATCH 宿主游标变量与 PL/SQL 游标变量的返回类型不兼容

      SELF_IS_NULL 使用对象类型时,在 null 对象上调用对象方法

      STORAGE_ERROR 运行 PL/SQL 时,超出内存空间

      SYS_INVALID_ID 无效的 ROWID 字符串

      TIMEOUT_ON_RESOURCE Oracle 在等待资源时超时

      3.Oracle的基本语法

      (1).条件判断

      基本语法1

      if 条件 then

      业务逻辑

      end if;

      基本语法2

      if 条件 then

      业务逻辑

      else

      业务逻辑

      end if;

      基本语法3

      if 条件 then

      业务逻辑

      elsif 条件 then

      业务逻辑

      else

      业务逻辑

      end if;

      (2).循环

      (1)无条件循环

      loop

      循环语句

      end loop;

      (2)条件循环

      while 条件

      loop

      循环语句

      end loop;

      (3)for循环

      for 变量 in 起始值..终止值

      loop

      循环语句

      end loop;

      (3)游标使用

      基本语法: cursor 游标名称 is SQL 语句;

      在循环过程使用:

      open 游标名称

      loop

      fetch 游标名称 into 变量

      exit when 游标名称%notfound

      end loop;

      close 游标名称

      4.Oracle存储函数

      存储函数又称为自定义函数,可以接收一个或多个参数,返回一个结果,在函数中我们可以使用PL/SQL进行逻辑的处理。

      基本语法:

      create [ OR REPLACE ] function 函数名称

      (参数名称 参数类型, 参数名称 参数类型, ...)

      return 结果变量数据类型

      is

      变量声明部分;

      begin

      逻辑部分;

      return 结果变量;

      [EXCEPTION

      异常处理部分]

      end; <注意:end后的";"不能取消掉>

      5.Oracle的触发器

      数据库触发器是一个与表相关联的、存储的PL/SQL程序,每当一个特定的DML(数据操作语句)在指定的表上发出时,Oracle 自动地执行触发

      器中定义的语句序列。

      其语法格式为:

      create [or REPLACE] trigger 触发器名

      BEFORE | AFTER --判断先开始触发还是后开始触发

      [DELETE ][[or] INSERT] [[or]UPDATE [OF 列名]]

      on 表名

      [FOR EACH ROW ][WHEN(条件) ]

      declare

      ……

      begin

      LSQL 块

      end;<注意:end后的";"不能取消掉>(编辑:雷林鹏 来源:网络)

  • 相关阅读:
    泛型接口(C# 编程指南) From MSDN
    不知道是不是心理作用,我怎么觉得在Fedora下写cnblogs比Windows下快。
    VS.NET 2005真是太好用了!
    写了个打字游戏,可是有问题(C#)
    C#多线程测试
    关于继承的一个小程序
    VS.NET 2008 试用
    基本排序算法及分析(二):冒泡排序
    基本排序算法及分析(三):shell排序
    [导入]一维数组输出杨辉三角形
  • 原文地址:https://www.cnblogs.com/pengpeng1208/p/9528058.html
Copyright © 2020-2023  润新知