学习笔记_oracle——PL/SQL

PL/SQL编程
 过程化SQL语言,把SQL通过流程控制实现更高效,更灵活
 更可控制的特点。

PL/SQL的程序块结构
 DECLARE
 --变量、常量、游标、用户定义异常的声明
 BEGIN
  --SQL语句和PL/SQL语句构成的执行程序
  EXCEPTION
  --程序出现异常时,捕捉并处理
 END;
 注意事项
 DECLARE,BEGIN,EXCEPTION后面没有分号,而END以及
 所有SQL语句,PL/SQL语句必须以分号结束
 
PL/SQL的变量
 定义变量 在声明部分
 变量名  变量类型[NOT NULL(可选,非空)] := 变量值
 变量命名规则和java类似,作用域是所在结构块
 变量赋值
  1、变量名 := value
  2、select key INTO 变量名 from table where 条件
   注意, 1、只能有一条记录
    2、INTO必须在select中
    3、INTO的类型必须匹配
    4、INTO的变量数和select的变量数必须相同

 逻辑控制
 1、条件控制
  IF
   IF 条件 THEN
   --代码块
   END IF;
  IF THEN ELSE
   IF 条件 THEN
   --代码块
   ELSE
   --代码块
   END IF;
  IF THEN ELSIF
   IF 条件 THEN
   --代码块
   ELSIF 条件 THEN
   --代码块
   ELSE
   --代码块
   END IF;
  SWITCH
   CASE 值
    WHEN 表达式 THEN
    --代码
    WHEN 表达式 THEN
    --代码
    ELSE
    --代码
   END CASE;
   或
   CASE
    WHEN 表达式 = 值 THEN
    --代码
    WHEN 表达式 = 值 THEN
    --代码
    ELSE
    --代码
   END CASE;
 2、循环控制
  LOOP
   LOOP
    --代码块
    EXIT [WHEN 条件]
   END LOOP;
  FOR 
   FOR 循环变量 IN 循环开始..循环结束 LOOP
   --代码块
   END LOOP
  WHILE 
   WHILE 条件    
    --语句
   END LOOP;

异常处理
 异常的语法结构
  EXCEPTION
   WHEN 异常1 THEN
    --代码
   WHEN 异常1 THEN
    --代码
   WHEN OTHES THEN
    --代码
  END
 常见预定义异常
  NO_DATA_FOUND  没有返回数据时执行select..into
  TOO_MANY_ROWS  返回多条数据是执行select..into
  DUP_VAL_ON_INDEX 违反唯一约束
  INVALID_NUMBER  非数字转数字异常
  CUNSOR_ALREADY_OPEN 已打开的游标再次OPEN
 自定义异常
  在DECLARE部分声明定义异常
  在代码中用RAISE抛出
  在EXCEPTION中捕获处理
  //===========示例==================
  DECLARE
   exception1 EXCEPTION
  BEGIN
   RAISE exception1
  EXCEPTION
   WHEN exception1 THEN
    --代码
  END;

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值