PL/SQL 几个基本概念
** 1. PL/SQL ** ** 概述
**
PL/SQL is Oracle's procedural extension to industry-standard SQL. PL/SQL naturally, efficiently, and safely extends SQL. Its primary strength is in providing a server-side, stored procedural language that is easy-to-use, seamless with SQL, robust, portable, and secure.
PL/SQL 语言是 Oracle 公司对标准 SQL 语言的过程化扩展 。它将 SQL 语言( 4GL )的强大灵活性与 3GL 的过程性结构融为一体。
PL/SQL 是 Procedural Language/SQL 的缩写。正如其名字所示, PL/SQL 通过增加了用在其他过程性语言中的结构来对 SQL 进行了扩展,例如:
变量和类型(包括预定义和用户自定义)。
控制结构,如 IF-THEN-ELSE 语句和循环。
过程和函数。
对象类型和方法
** 2. ** ** 游标
**
** ** 游标用来处理从数据库中检索的多行记录(使用 SELECT 语句)。利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集。
为了处理 SQL 语句, Oracle 将在内存中分配一个区域,这就是上下文区。这个区包含了已经处理完的行数、指向被分析语句的指针,整个区是查询语句返回的数据行集。游标就是指向上下文区句柄或指针。
** 2.1 ** ** 显示游标
**
显示游标被用于处理返回多行数据的 SELECT 语句,游标名通过 CURSOR….IS 语句显示地赋给 SELECT 语句。
在 PL/SQL 中处理显示游标所必需的四个步骤:
1 )声明游标; CURSOR cursor_name IS select_statement
2 )为查询打开游标; OPEN cursor_name
3 )取得结果放入 PL/SQL 变量中;
FETCH cursor_name INTO list_of_variables;
FETCH cursor_name INTO PL/SQL_record;
4 )关闭游标。 CLOSE cursor_name
_ 注意:在声明游标时, _ select_statement 不能包含 INTO 子句。当使用显示游标时, INTO 子句是 FETCH 语句的一部分。
** 2.2 ** ** 隐式游标
**
所有的隐式游标都被假设为只返回一条记录。
使用隐式游标时,用户无需进行声明、打开及关闭。 PL/SQL 隐含地打开、处理,然后关掉游标。
例如:
…….
SELECT studentNo,studentName
INTO curStudentNo,curStudentName
FROM StudentRecord
WHERE name=’gg’;
上述游标自动打开,并把相关值赋给对应变量,然后关闭。执行完后, PL/SQL 变量 curStudentNo,curStudentName 中已经有了值。