PL/SQL语句块结构
- 声明部分
- 可执行部分
- 异常处理部分
示例:
DECLARE -- 声明部分
v_first_name VARCHAR(32) ;-- 以分号结构语句
v_last_name VARCHAR(32) ;
BEGIN --可执行部分
SELECT FISRST_NAME,LAST_NAME
INTO v_first_name,v_last_name
FROM STUDENT
WHERE STUDENT_ID = '123' ;
DBMS_OUTPUT.PUT_LINE ('STUDENT NAME:''v_first_name' || 'v_last_name') ;
EXCEPTION -- 异常处理部分
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('THERE IS NO STUDENT WITH' || 'STUDENT_ID = 123');
END;
如何执行PL/SQL
每次执行匿名PL/SQL语句块时,代码会发送给位于服务器的PL/SQL引擎,在此进行编译,命名PL/SQL语句块只在创建或者被修改时进行编译。编译过程包括语法检查,绑定,伪代码生成。
如何区分PL/SQL语句块
点号(’.’)或者斜线(‘/’)表示PL/SQL语句块的结尾,并且点号是可选的,斜线会执行整个PL/SQL语句块,并且是必需的。
- 替代变量
借助于替代变量,PL/SQL可以接受输入信息。通常替代变量的前面是&或者&&。
示例:
DECLARE -- 声明部分
v_student_id NUMBER :=&sv_student_id; --替代变量
v_first_name VARCHAR(32) ;-- 以分号结构语句
v_last_name VARCHAR(32) ;
BEGIN --可执行部分
SELECT FISRST_NAME,LAST_NAME
INTO v_first_name,v_last_name
FROM STUDENT
WHERE STUDENT_ID = sv_student_id ;--替代变量
DBMS_OUTPUT.PUT_LINE ('STUDENT NAME:''v_first_name' || 'v_last_name') ;
EXCEPTION -- 异常处理部分
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('THERE IS NO STUDENT WITH' || 'STUDENT_ID = 123');
END;
- 使用 DBMS_OUTPUT.PUT_LINE语句
DBMS_OUTPUT.PUT_LINE(”);将处理结果显示在屏幕上。
如果在PL/SQL语句块之前执行SET SERVEROUTPUT OFF ;语句,则屏幕上不会显示有关处理结果的内容。