Pl/sql
的第一个例子:
DECLARE
/*定义SQL语句中的使用的变量*/
V_Sex NUMBER;
V_AuthorCode CHAR(6);
V_Arcount NUMBER;
BEGIN
/*查询表中数据*/
SELECT author_code,sex
INTO V_AuthorCode, V_Sex
FROM auths
WHERE name =”王林达”;
IF v_Sex = 0 THEN
SELECT count(article_code)
Into v_Arcount
FROM article
WHERE author_code = “A00001”
END_IF;
END;
块是PL/SQL程序中的基本执行单元,所有的PL/SQL程序都是由块组成的,每个块完成程序中的部分工作,这样就可以将程序分成多个块。
一个标准的块结构如下:
DECLARE
块的定义部分,这里可以定义PL/SQL变量、自定义类型、游标和局部子程序,这个部分是程序的可选部分。
BEGIN
块的执行部分,这里放置一些可执行的SQL或PL/SQL语句,这是块中最重要的部分,并且也是块中必须有的部分。这里不许至少包含一条可执行语句。
EXCEPTION
异常处理部分,这里放置对错误进行处理的语句,这部分是块中可选部分。
END
游标
游标用来查询数据库中的数据,并对查询的结果进行处理。游标分为显式游标和隐式游标。通过游标,可以对查询结果中的数据一条一条进行处理。
块的分类
1,
无名块:
动态构造并只能执行一次
2,
命名块:前面加了标号的无名块
3,
子程序:包括存储在数据库中的存储过程、函数和包等。便可以随时调用。
4,
触发器:它是存储在数据库中的块,这些块一旦被构造后,就可以多次执行。当触发它的事件发生时调用该触发器。触发事件是指对表中数据的操作,如插入、删除和修改。
触发器的一个简单的例子:
CREATE OR REPLACE TRIGGER salary_trigger
--
当向
auths
表中插入一行或者修改一行后激活触发器
BEFORE INSERT OR UPDATE of salary ON auths
FOR EACH ROW
BEGIN
如果插入值或修改值大于
10000
时,报告应插入的工资值,
--
并产生异常,退出该触发器
IF : new.salary>10000 THEN
RAISE_APPLICATION_ERROR(-200060.’
插入的工资应小于
10000
!
’);
END IF;
END salary_trigger;
上面的触发器被创建在
auths
表上,该触发器确保只有小于
10000
的值才能插入到
salary
列中。当向表中插入或修改一条记录时,触发该触发器。
PL/SQL
程序中的变量名必须是合法的标识符,但不可以是保留字。在
PL/SQL
中,保留字是有特定意义的标识符。