Oracle PL/SQL 基础

一、概述、PL/SQL 块结构
PL/SQL 是Oracle产品对 SQL 语言的扩展。PL/SQL 块共分为三个部分:声明部分、可执行部分、异常部分。

    DECLARE
        ...
    BEGIN
        ...
    EXCEPTION
        ...
    END;

变量声明内容:赋予变量适当的名称、数据类型、定义变量(标准,记录)、控制变量范围。
变量命名规则:变量以字符开头;可包含数字、下划线、$、#;长度范围 1~30;不区分大小写;不能使用系统关键字。

ps.在 PL/SQL 常用的命令:
1、打开输出开关            SET SERVEROUTPUT ON ;
2、利用系统包输出信息     DBMS_OUTPUT.PUT_LINE('x 的值是:' || x);


二、控制结构

1、分支语句
a、IF 分支

    IF ... THEN
        ...
    ELSEIF ...THEN
        ...
    ELSE
        ...
    END IF;


b、CASE 分支

    CASE
        WHEN ... THEN
            ...
        ELSE
            ...
    END CASE;


2、循环语句
a、基本循环(LOOP)
无条件循环,为避免进入无限循环,LOOP 循环的语句必须使用 EXIT 或 EXIT WHEN 语句。

    LOOP
        ...
    END LOOP;


b、WHILE 循环

    WHILE condition LOOP
        ...
    END LOOP;


c、FOR 循环

    FOR counter IN [REVERSE] start..end
    LOOP
        ...
    END LOOP;


3、顺序控制
GOTO 语句:无条件的将控制权转到标签指定的语句。
NULL 语句:什么也不做,只是将控制权转到下一条语句,用于语句结构需要,但什么也不需要操作的情况下。

    GOTO xxxx;
          ...
    <<xxxx>>
    NULL;



三、异常
系统异常(预定义异常)

    EXCEPTION
        WHEN xxxx THEN
            ....


自定义异常

    DECLARE
        -- 自定义异常
        xxxxx EXCEPTION;
    BEGIN
        -- 显式引发异常
        RAISE xxxxx
    EXCEPTION
        -- 异常处理
        WHEN xxxxx THEN
            ....
    END; 



四、复合变量(记录)
记录是由几个相关值构成的复合变量,常用于支持 SELECT 语句的返回值。使用记录可以将一行数据并到一个单元进行处理,而不必将每一列单独处理。

    DECLARE
        TYPE myrecord IS RECORD(id varchar2(10), name varchar2(10));
        real_record myrecord;
    BEGIN
        -- SELECT .. INTO 赋值语句
        SELECT emp_id, emp_name INTO real_record FROM emp WHERE emp_id='001';
        .....
    END;


或者 可以利用属性类型来引用变量或者数据库中某列的数据类型。

  ● 声明变量 icode,引用表中某列 emp.id 的数据类型
    icode emp.id%TYPE;

  ● 声明变量 emp_rec 引用表 emp 中所有列记录类型
    emp_rec emp%ROWTYPE;


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值