PL/SQL

王朝百科·作者佚名  2009-12-27  
宽屏版  字体: |||超大  

PL/SQL是一种高级数据库程序设计语言,PL/SQL语言在将SQL语言的灵活性及功能与第三代语言的可配置能力相结合方面是独一无二的。该语言集成了面向过程语言的过程结构和强大的数据库操作,为设计复杂的数据库应用提供了功能强大、健壮可靠的程序设计语言。该语言专门用于在各种环境下对Oracle数据库进行访问。由于该语言集成于数据库服务器中,所以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/Structured Query Language的缩写。正如其名字所示,PL/SQL通过增加了用在其他过程性语言中的结构来对SQL进行了扩展,例如:

变量和类型(包括预定义和用户自定义)。

控制结构,如IF-THEN-ELSE语句和循环。

If <condition> then … end if

If <condition> then … else … end if

If <condition> then … elsif <condition>

then ….. End if

e.g.

If v_balance >= 50000

then v_cust_type := ‘VIP’;

elsif v_balance >= 30000

then v_cust_type := ‘Advanced’;

else v_cust_type := ‘Normal’;

end if;

循环

Iterative control statement

Loop

exit [when <conditon>]

end loop;

While <condition>

loop

….

End loop;

For <counter> in [reverse] <n1..n2>

loop

end loop;

过程和函数。

对象类型和方法

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

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有