欢迎光临
我们一直在努力

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)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。