《精通Oracle10gPLSQL编程》3、PL/SQL基础
2013-04-09 00:51
141 查看
块(Block)是PL/SQL的基本程序单元。
PL/SQL块基本结构:
---------------------------------------------------------------------------------------------------------
定义并使用变量
a.标量(Scalar)类型、
复合变量是用于存放多个值得变量。PL/SQL包括PL/SQL记录、PL/SQL表、嵌套表、VARRAY等四种复合数据类型。
PL/SQL记录:类似高级语言中的结构
VARRAY(变长数组):类似嵌套表,但是元素个数有限制。
c.参照(Reference)类型、
参照变量是用于存放数值指针的变量。可使用参照变量使得应用程序共享相同对象,降低占用空间。
游标变量(REF CURSOR)
对象类型变量(REF obj_type)
d.LOB(Large Object)类型
PL/SQL块基本结构:
DECLARE /* 定义部分 */ BEGIN /* 执行部分 */ EXCEPTION /* 例外处理部分 */ END;/* 块结束标记 */块分类:匿名块、命名块(<<>>)、子程序(过程、函数、包)、触发器
---------------------------------------------------------------------------------------------------------
定义并使用变量
a.标量(Scalar)类型、
aaa number(10); bbb constant number(3,2) := 0.01; ccc varchar2(20) default 'ccc';当定义PL/SQL变量存放列值时,必须确保变量使用合适的数据类型和长度,否则可能出错。为了避免错误,可以使用%TYPE属性定义变量,使用%TYPE定义变量时,会按照数据库列或其他变量来确定新变量的类型及长度。
v_ename emp.ename%TYPE; v_sal emp.sal%TYPE; v_sal2 v_sal%TYPE;b.复合(Composite)类型、
复合变量是用于存放多个值得变量。PL/SQL包括PL/SQL记录、PL/SQL表、嵌套表、VARRAY等四种复合数据类型。
PL/SQL记录:类似高级语言中的结构
create table emp( id number(10), ename varchar2(20), etitle varchar2(20) ); insert into emp values (1,'aaa','a_title'); DECLARE TYPE emp_record_type IS RECORD( v_name emp.ename%TYPE, v_title emp.etitle%TYPE ); emp_record emp_record_type; BEGIN select ename,etitle into emp_record from emp where id = 1; dbms_output.put_line('name : ' || emp_record.v_name); END;PL/SQL表:类似高级语言中的数组
DECLARE TYPE ename_table_type IS TABLE OF emp.ename%TYPE INDEX BY BINARY_INTEGER; ename_table ename_table_type; BEGIN select ename into ename_table(0) from emp where id = 1; dbms_output.put_line('name : ' || ename_table(0)); END;嵌套表(Nested Table):类似高级语言中的数组
CREATE OR REPLACE TYPE emp_type AS OBJECT( name varchar2(20),title varchar2(20) ); CREATE OR REPLACE TYPE emp_array IS TABLE OF emp_type;对象emp_type用于存储emp信息,而emp_array是基于emp_type的嵌套表类型,可以用于存储多个雇员信息。
VARRAY(变长数组):类似嵌套表,但是元素个数有限制。
CREATE OR REPLACE TYPE emp_type AS OBJECT( name varchar2(20),title varchar2(20) ); CREATE OR REPLACE TYPE emp_array IS VARRAY(20) OF emp_type;
c.参照(Reference)类型、
参照变量是用于存放数值指针的变量。可使用参照变量使得应用程序共享相同对象,降低占用空间。
游标变量(REF CURSOR)
declare type c1 is ref cursor; emp_cursor c1; v_ename emp.ename%TYPE; v_title emp.etitle%TYPE; begin open emp_cursor for select ename,etitle from emp where id = 1; loop fetch emp_cursor into v_ename,v_title; exit when emp_cursor%notfound; dbms_output.put_line(v_ename); end loop; end;
对象类型变量(REF obj_type)
d.LOB(Large Object)类型
相关文章推荐
- ORACLEPL/SQL基础--游标的学习来源=====转帖收藏
- PL/SQL基础编程之(七) [过程编程,过程传参数编程,自动插入数据]
- oracle数据库----笔记1---PL/SQL基础5---子程序
- PL/SQL基础
- oracle基础知识2----pl/sql基础(基本语法、光标、例外、应用)
- oracle与pl/sql基础
- 第二章 PL/SQL基础
- PL/SQL基础编程之(八) [视图、同义词、序列]
- oracle数据库----笔记1---PL/SQL基础6---包
- Oracle442个应用场景---------PL/SQL基础
- 二十、oracle pl/sql基础
- Oracle10G学习笔记之四Pl/sql基础
- PL/SQL基础编程之(九)[事务的一致性、隔离性、并发性][行级触发器、语句触发器、替换触发器]
- oracle数据库----笔记1---PL/SQL基础8---数据库管理
- PL/SQL基础(一)
- PL/SQL基础(1):语法
- Oracle PL/SQL基础--游标的学习
- PL/SQL基础编程之(十)[SQL、EM创建用户、角色][授权、配置文件、限制登录次数锁定用户]
- Oracle 11g PL/SQL基础入门系列培训-视频分享
- PL/SQL基础(二)