Oracle 学习:PL/SQL循序渐进全面学习教程--课程九 声明变量
2009-11-08 00:32
751 查看
课程九 声明变量
本课重点:
1、了解基本的PLSQL块和区域
2、描述变量在PLSQL中的重要性
3、区别PLSQL与非PLSQL变量
4、声明变量
5、执行PLSQL块
注意:以下实例中标点均为英文半角
一、概述:
1、PLSQL 块结构:
DECLARE --- 可选
变量声明定义
BEGIN ---- 必选
SQL 和PLSQL 语句
EXCEPTION ---- 可选
错误处理
END;---- 必选
二、实例:
declare
vjob varchar(9);
v_count number:=0;
vtotal date:=sysdate +7;
c_tax constant number(3,2):=8.25;
v_valid boolean not null:=true;
begin
select sysdate into vtotal from dual;
end;
/
上例中,如果没有这个SELECT语句,会如何?
出错,说明必须有STATEMENTS
如果: select sysdate from dual into vtotal ;
同样,也不行。而且变量与赋值的类型要匹配。
三、%TYPE的属性
声明一个变量使之与数据库某个列的定义相同或与另一个已经定义过的变量相同
所以%TYPE要作为列名的后缀:如:
v_last_name s_emp.last_name%TYPE;
v_first_name s_emp.first_name%TYPE; --这样做的好处是我们不必去知晓此列的类型与定义
或:v_balance NUMBER(7,2);
v_minimum_balance v_balance%TYPE := 10;
四、声明一个布尔类型的变量
1 只有TRUE、FALSE、NULL可以赋值给BOOLEAN变量
2 此变量可以接逻辑运算符NOT、AND、OR。
3、变量只能产生TRUE、FALSE、NULL。
实例:
VSAL1:=50000;
VSQL2:=60000;
VCOMMSAL BOOLEAN:=(VSAL1<VSQL2);
--其实是把TRUE赋值给此变量。
五、LOB 类型的变量
共有CLOB、BLOB、BFILE、NCLOB几种,这里不做为重点。
六:使用HOST VARIABLES
SQL> variable n number
SQL> print n
:n=v_sal /12;
:n这个加了:前缀的变量不是PLSQL变量,而是HOST。
七、以下几个PLSQL声明变量,哪个不合法?
A 、DECLARE
V_ID NUMBER(4);
B、DECLARE
V_X,V_Y,V_Z VARCHAR2(9);
C、DECLARE
V_BIRTH DATE NOT NULL;
D、DECLARE
V_IN_STOCK BOOLEAN:=1;
E、DECLARE
TYPE NAME_TAB IS TABLE OF VARCHAR2(20)
INDEX BY BINARY_INTEGER;
DEPT_NAME NAME_TAB;
上面的习题我会在下章给出答案,这也正是声明变量的规则和难点。
本课重点:
1、了解基本的PLSQL块和区域
2、描述变量在PLSQL中的重要性
3、区别PLSQL与非PLSQL变量
4、声明变量
5、执行PLSQL块
注意:以下实例中标点均为英文半角
一、概述:
1、PLSQL 块结构:
DECLARE --- 可选
变量声明定义
BEGIN ---- 必选
SQL 和PLSQL 语句
EXCEPTION ---- 可选
错误处理
END;---- 必选
二、实例:
declare
vjob varchar(9);
v_count number:=0;
vtotal date:=sysdate +7;
c_tax constant number(3,2):=8.25;
v_valid boolean not null:=true;
begin
select sysdate into vtotal from dual;
end;
/
上例中,如果没有这个SELECT语句,会如何?
出错,说明必须有STATEMENTS
如果: select sysdate from dual into vtotal ;
同样,也不行。而且变量与赋值的类型要匹配。
三、%TYPE的属性
声明一个变量使之与数据库某个列的定义相同或与另一个已经定义过的变量相同
所以%TYPE要作为列名的后缀:如:
v_last_name s_emp.last_name%TYPE;
v_first_name s_emp.first_name%TYPE; --这样做的好处是我们不必去知晓此列的类型与定义
或:v_balance NUMBER(7,2);
v_minimum_balance v_balance%TYPE := 10;
四、声明一个布尔类型的变量
1 只有TRUE、FALSE、NULL可以赋值给BOOLEAN变量
2 此变量可以接逻辑运算符NOT、AND、OR。
3、变量只能产生TRUE、FALSE、NULL。
实例:
VSAL1:=50000;
VSQL2:=60000;
VCOMMSAL BOOLEAN:=(VSAL1<VSQL2);
--其实是把TRUE赋值给此变量。
五、LOB 类型的变量
共有CLOB、BLOB、BFILE、NCLOB几种,这里不做为重点。
六:使用HOST VARIABLES
SQL> variable n number
SQL> print n
:n=v_sal /12;
:n这个加了:前缀的变量不是PLSQL变量,而是HOST。
七、以下几个PLSQL声明变量,哪个不合法?
A 、DECLARE
V_ID NUMBER(4);
B、DECLARE
V_X,V_Y,V_Z VARCHAR2(9);
C、DECLARE
V_BIRTH DATE NOT NULL;
D、DECLARE
V_IN_STOCK BOOLEAN:=1;
E、DECLARE
TYPE NAME_TAB IS TABLE OF VARCHAR2(20)
INDEX BY BINARY_INTEGER;
DEPT_NAME NAME_TAB;
上面的习题我会在下章给出答案,这也正是声明变量的规则和难点。
相关文章推荐
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程六 运行时应用变量
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程三 从多个表中提取数据
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程十二 编写控制结构语句
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程四 组函数
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程十三 使用组合数据类型* 游标操纵数据
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程五 子查询
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程七 其他数据库对象
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程八 用户访问控制
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程一 PL/SQL 基本查询与排序
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程十 写执行语句
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程二 PL/SQL 查询行函数
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程十一 与ORACLE SERVER交互
- PL/SQL循序渐进全面学习教程--Oracle
- PL/Sql循序渐进全面学习教程--Oracle
- Oracle 学习:PL/SQL循序渐进全面学习教程--最后一课 异常处理
- Oracle PL/Sql循序渐进全面学习教程
- PL/Sql循序渐进全面学习教程--Oracle (转载)
- PL/Sql循序渐进全面学习教程--Oracle
- PL/Sql循序渐进全面学习教程--Oracle (转载)
- PL/Sql循序渐进全面学习教程--Oracle 选择自 hissan 的 Blog