《Oracle PL/SQL 完全自学手册》读书笔记 2.5 PL/SQL基本结构
2013-04-05 22:34
981 查看
PL/SQL程序都是以(BLOCK)为基本单位,整个PL/SQL块分为3部分:声明部分(以DECLARE开头)、执行部分(以BEGIN开头)和异常处理部分(以EXCEPTION开头)。其中,执行部分是必须的,其他两个部分可选。无论PL/SQL程序段的代码量有多大,其基本结构就是由这3部分组成,而且每条语句均由分号隔开。其结构语法如下:
声明部分,以DECLARE开头:
DECLARE
--DECLARE STATEMENT执行部分,以BEGIN开头,以END结束:
BEGIN
--EXECUTE STATEMENT异常处理部分,以EXCEPTION开头:
EXCEPTION
WHEN EXCEPTIONCASE THEN
--EXCEPTION HANDLE
END;
其用法如下:
create table TESTQUARTZ
(
CARNO VARCHAR2(30),
CARINFOID NUMBER
)
在PL/SQL中常量和变量必须是在声明后才可以使用,向前引用(Forward Reference)是不允许的。
2.6.1 常量
定义常量的语法格式如下:
常量名 CINSTANT 类型标示符 [NOT NULL]:=值;
常量,包括后面的变量名都必须以字母开头,不能有空格,长度不能超过30个字符,同时不能和保留字同名,常(变)量名称不区分大小写,在字母后面可以带数字或特殊字符。括号内的NOT NULL
为 可选参数,若选用,表明该常(变)量不能为空。
例如,下面的代码定义了名为PI的数字型常量,长度为9:
DECLARE
pi CONSTANT NUMBER(9):=3.1415926;
BEGIN
COMMIT;
END;
SQL>
26 /
PL/SQL procedure successfully completed
SQL>
2.6.2 变量
变量可以是任何SQL类型,如CHAR\DATE或NUMBER等,也可以是PL/SQL、BOOLEAN或BINARY_INTEGER等
基本数据类型变量的定义语法如下:
变量名 类型标示符 [NOT NULL]:=NULL;
例如,下面代码定义了名为age的数字型变量,长度为3,初始值为26:
DECLARE
age NUMBER(3):=26;
BEGIN
COMMIT;
END;
/
此外,前面还介绍了可以使用%TYPE和%ROWTYPE两种方法来定义变量的类型,使之和数据表中的字段或与记录的数据类型一致。这样,当数据表的字段或记录的数据类型修改后,PL/SQL程序中相应变量的类型也自动修改。
使用%TYPE可以使变量获得字段的数据类型,使用%ROWTYPE可以使变量获得整个记录的数据类型。两者定义区别在于,前者是“变量名 数据表.列名%TYPE”,而后者是“ 变量名 数据表%ROWTYPE”.
%ROWTYPE的用法示例如下
DECLARE
myTable emp%ROWTYPE;
BEGIN
SELECT * INTO myTable FROM emp WHERE ROWNUM=1;
dbms_output.put_line(myTable.ename);
END;
声明部分,以DECLARE开头:
DECLARE
--DECLARE STATEMENT执行部分,以BEGIN开头,以END结束:
BEGIN
--EXECUTE STATEMENT异常处理部分,以EXCEPTION开头:
EXCEPTION
WHEN EXCEPTIONCASE THEN
--EXCEPTION HANDLE
END;
其用法如下:
create table TESTQUARTZ
(
CARNO VARCHAR2(30),
CARINFOID NUMBER
)
DECLARE v_carinfoID NUMBER(10):=10; v_carno VARCHAR2(30); BEGIN DELETE FROM Testquartz; INSERT INTO Testquartz(CARINFOID,CARNO) VALUES(v_carinfoID,'00001'); SELECT carno INTO v_CARNO FROM Testquartz WHERE CARINFOID=v_carinfoID; DBMS_OUTPUT.put_line(v_carno); EXCEPTION WHEN no_data_found THEN dbms_output.put_line('无数据!'); END;2.6 常量和变量
在PL/SQL中常量和变量必须是在声明后才可以使用,向前引用(Forward Reference)是不允许的。
2.6.1 常量
定义常量的语法格式如下:
常量名 CINSTANT 类型标示符 [NOT NULL]:=值;
常量,包括后面的变量名都必须以字母开头,不能有空格,长度不能超过30个字符,同时不能和保留字同名,常(变)量名称不区分大小写,在字母后面可以带数字或特殊字符。括号内的NOT NULL
为 可选参数,若选用,表明该常(变)量不能为空。
例如,下面的代码定义了名为PI的数字型常量,长度为9:
DECLARE
pi CONSTANT NUMBER(9):=3.1415926;
BEGIN
COMMIT;
END;
SQL>
26 /
PL/SQL procedure successfully completed
SQL>
2.6.2 变量
变量可以是任何SQL类型,如CHAR\DATE或NUMBER等,也可以是PL/SQL、BOOLEAN或BINARY_INTEGER等
基本数据类型变量的定义语法如下:
变量名 类型标示符 [NOT NULL]:=NULL;
例如,下面代码定义了名为age的数字型变量,长度为3,初始值为26:
DECLARE
age NUMBER(3):=26;
BEGIN
COMMIT;
END;
/
此外,前面还介绍了可以使用%TYPE和%ROWTYPE两种方法来定义变量的类型,使之和数据表中的字段或与记录的数据类型一致。这样,当数据表的字段或记录的数据类型修改后,PL/SQL程序中相应变量的类型也自动修改。
使用%TYPE可以使变量获得字段的数据类型,使用%ROWTYPE可以使变量获得整个记录的数据类型。两者定义区别在于,前者是“变量名 数据表.列名%TYPE”,而后者是“ 变量名 数据表%ROWTYPE”.
%ROWTYPE的用法示例如下
DECLARE
myTable emp%ROWTYPE;
BEGIN
SELECT * INTO myTable FROM emp WHERE ROWNUM=1;
dbms_output.put_line(myTable.ename);
END;
SQL> 12 / 7369 PL/SQL procedure successfully completed SQL>
相关文章推荐
- 《Oracle PL/SQL 完全自学手册》读书笔记 第5章 数据的增、删、改-- 5.3.4 TRUNCATE与DELETE的区别
- 《Oracle PL/SQL 完全自学手册》读书笔记 2.4.2 复合类型
- Oracle PL SQL完全自学手册pdf
- Oracle_PL/SQL的基本写法_BEGIN_END块结构及简单的事务实现
- oracle PL/SQL的基本构成,结构控制语句,分支结构,选择结构,loop循环结构,
- oracle(03): PL/SQL基本结构,语法,变量
- Oracle PL/SQL的程序结构以及基本数据变量类型
- oracle PL/SQL的基本构成,块结构和基本语法要求,数据类型,变量定义,运算符和函数
- 2012年1月3日 星期二(oracle读书笔记,PL/SQL语言概述、块结构、数据类型)
- Oracle_PL/SQL的基本写法_BEGIN_END块结构及简单的事务实现
- oracle(02): PL/SQL基本概念,关系运算符,顺序结构,分支结构,循环结构
- Oracle_PL/SQL的基本写法_BEGIN_END块结构及简单的事务实现
- oracle PL/SQL的基本构成,块结构和基本语法要求,数据类型,变量定义,运算符和函数
- 利用PL/SQL导出Oracle数据表结构
- ORACLE PL/SQL基本语法 触发器 存储过程
- 【Oracle】PL/SQL——基本语法,记录类型和控制流程
- Oracle PL/SQL 编程手册
- Oracle:PL/SQL基本语法
- Oracle PL/SQL开发基础(第二十一弹:基本函数)
- OraclePL/SQL流程控制结构