我们开始学习PL/SQL
PL/SQl的好处在于降低了网络开销,别的数据库执行四条sql语言的话,在网络上要发送四次语句,
而oracle可以把多条sql语句写到一段PL/SQl快中,从而降低了网络开销,以高了网络程序的性能;
PL/SQl语句的基本结构如下:
DECLARE
/*
*定义了变量常量定义的部分
*/
BEGIN
/*
*执行主题
*/
EXCEPTION
/*
*异常处理部分
*/
END
/
定义变量:
变量定义除了前几张所涉及到的几个以外,还有
BOOLEAN
BINARY_INTEGER
BINARY_FLOAT
BINARY_DOUBLE
定义变量的格式
identifier [constant] datatype [not null] [:=default exp]
示例:
v_name varchar2(12);
c_tax_rate CONSTANT NUMBER(3,2) : =5.5;
%TYPE属性
如下:
v_name table_name.column_name%TYPE
复合变量:
PL/SQl中复合变量的概念跟c语言中的结构的概念很像;
复合变量有如下几种:
1)PL/SQL记录:
记录这个类型是方便表达几个字段的集合,经常用来表达oracle关系型数据库的行概念
2)PL/SQl表:
表这个类型经常用来表示单列多行
他跟数组概念很像,但是他的下标是从1开始,而且没有边界限制,下标可以是负值
3)嵌套表:
嵌套表可以说是表和记录的综合,常用来表示多行多列的概念,设置可以表示一张关系型数据库的表;
4)VARRAY
跟高级语言的数组相似,不过其下标是从1开始的,他也是有边界限制的;
PL/SQL的编写规则:
1)标识命名规则:
#当定义变量的时候,建议以v_开头;
#当定义常量的时候,建议以c_开头;
#当定义游标的时候,建议以_cursor最为后缀;
#当定义例外的时候,建议以e_开头;
#当定义表类型的时候,建议以_table_type作为后缀;
#当定义表变量的时候,建议以_table作为后缀
#当定义记录类型的时候,以record_type作为后缀;
#当定义记录变量的时候,以record作为后缀;
引用某表的某列的数据类型