一,变量
PL/SQL块的组成分为三个部分
--定义(declare)
--可执行部分(begin.......end)
--异常部分(exception)
具体的结构如下:
Declare
变量,常量,游标,异常
Begin
Sql语句,pl/sql语句
Exception
End;
例如:
DECLARE
v_variable VARCHAR2(5);
BEGIN
SELECT column_name
INTO v_variable
FROM table_name;
EXCEPTION
WHEN exception_name THEN
...
END;
/
其中v_variable 是一个变量,在执行部分,将查询的结果放入该变量中保存。如果发生了异常测执行异常部分。
(一)变量的定义
1.变量的定义格式:
Declare(可选)
变量名 变量类型;
如:
Declare
V_name varchar2(25) := not null“admin”;
意义:定义一个变量v_name,规定值不能为空,初始值是“admin”
几种常见的数据类型:
Varchar2,number,date,char,long,boolean等
%type属性:
用于类型匹配:两种情况使用。
(1) 以前定义变量A的类型,要定义变量B的类型与A相同时,则可以:
B A%type
(2) 定义变量类型和表中列的类型相同时:
A 表名.列名%type
2.记录类型:
(1) 格式: type 记录变量名 is record(
变量名 变量类型,
……
变量名 变量类型)
(2) 记录类型与表的结构一致时:
记录变量名 表名%rowtype
例如:定义一个person类型的记录变量(姓名,性别,年龄),表person。则:
(1)
Declare
Type t_person is record(
Name varchar2(20),
Sex varchar2(2),
Age number(4),
)
(2) t_person person%rowtype;
3 绑定变量 指的是全局变量
声明一个绑定变量:variable name varchar2(20);
引用绑定变量: :name := “admin”;
4 变量的命名规范:
标识符 举例:
Variable v_name
Constant C_name
Cursor name_curse
Exception e_name
Record name_record
SQL*Plus substitution parameter p_name
SQL*Plus global variable g_name
二 可执行部分
例如:
(1)
set serveroutput on;
declare
v_name varchar(2) not null :=’’;
begin
select username into v_name from userinfo where usernumber=95001;
dbms_output_print_line(v_name);
end;
/;
注释:将学号是95001的学生的姓名通过PL/SQL打印出来。
V_name是一个变量,用来存放95001的姓名。
dbms_output_print_line(v_name);是库中提供的一个打印函数,在使用之前必须把包包括进来。
(2) 对于记录类型的变量信息的打印
(3) /*如下是一个关于记录类型数据的操作的例子*/
Set serveroutput on;
Declare
Record_person person%rowtype;
Begin
Select * into record_person from person where usernumber=95001;
--以下是打印语句
Dbms_output_print_line(record_person.name);
Dbms_output_print_line(record_person.sex);
Dbms_output_print_line(record_person.age);
End;
/
注释:(1)/*…..*/ 是多行注释语句。
(2)—是单行注释语句
(3)Record_person person%rowtype;是记录类型变量的定义
(4)record_person.age 是记录变量数据的引用