几个基本概念 1. PL/SQL 概述 PL/SQL is Oracle 's procedural extension to industry-standard SQL. PL/SQL naturally, efficiently, and safel" name="description" />

PL/SQL几个基本概念

发表于:2007-05-25来源:作者:点击数: 标签:sqlmso-ascii-f几个宋体基本概念
PL/SQL MI LY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">几个基本概念 1. PL/SQL 概述 PL/SQL is Oracle 's procedural extension to industry-standard SQL. PL/SQL naturally, efficiently, and safel

PL/SQLMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">几个基本概念

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/SQLProcedural 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中已经有了值。


原文转自:http://www.ltesting.net