PL/SQL块是一个可执行的程序。一个PL/SQL代码块,不管是封装在过程等程序单元中还是封装在指定为自由形式的匿名块中,都由下面的结构组成,总共有4个关键语句,其中只有两个是强制性的。
- DECLARE:为可选项,它声明程序变量和游标。
- BEGIN:这条强制性的语句指出,SQL和PL/SQL语句将跟在它后面。
- EXCEPTION;这条可选的语句规定如何处理错误。
- END:这条强制性的语句标志PL/SQL代码块的结束。
PL/SQL 中的SELECT语句
在PL/SQL中使用SELECT语句时,需要将检索值保存到变量中,如下例所示:
DECLARE
name VARCHAR2(30);
BEGIN
SELECT employee_name INTO name FROM employees WHERE emp_id=99999;
END;
/
PL/SQL中的DML语句
PL/SQL中的任何INSERT. DELETE或UPDATE语句与它们在普通SQL中的作用相同。可在任何这样的操作后使用COMMIT语句,如下例所示:
BEGIN
DELETE FROM employee WHERE emp_id = 99999;
COMMIT;
END;
/
处理错误
在PL/SQL中,错误或警告称为异常。PL/SQL具有一些内部定义的错误,你也可以定义自己的错误条件。如果发生错误,将引发一个异常,程序控制由PL/SQL程序的异常处理部分负责。如果你定义自己的错误条件,则必须使用特殊的RAISE语句引发异常。
下面的例子给出一个使用RAISE语句的异常处理:
DECLARE
acct_type INTEGER := 7;
BEGIN
IF acct_type NOT IN (1, 2, 3) THEN
RAISE INVALID_NUMBER; -- raise predefined exception
END IF;
EXCEPTION
WHEN INVALID_NUMBER THEN
ROLLBACK;
END;
/