PL/Sql 编程
PL/Sql结构
[declare]
--声明变量
begin
--执行部分
[exception]
---异常处理部分
end
PL/Sql 基本数据类型
数值类型
1、 number(p,s) 例如:number(9,2) 表示精度为9 ,小说点后两位的数。ps:既可以表示整形和浮点型。
字符类型: 2、pl/sql 中的varchar2 最大字节是32767字节。数据库中的varchar2(maxlength) 最大占4000多字节,如果超过4000,那么就要赋值给long型。
日期类型: date 占7 个字节。
布尔类型:boolean 包括三种true,false ,null。
PL/Sql 特殊类型
%TYPE
【%TYPE】 关键字声明了一个与指定类名称相同的数据类型,他通常紧跟在列名 的后面。
declare
Var_job scott.emp.job%TYPE;--Var_job 的数据类型和列名job的数据类型是一样的。比如job是的数据类型是varchar2(20) ,那么Var_job也是varchar2(20).
%record
【%record】 使用该变量可以存储多个列组成的一行数据。在声明变量前应该定义记录类型,然后才可以声明记录类型变量。记录类型变量是y一种结构化的数据类型。
它使用type语法定义。
格式:
type record_type is record
(
var_member1 data_type [not null][:=default_value],--切记是逗号;
...
var_member2 data_type [not null][:=default_value]
)
%rowType
【%rowtype】 类型结合了%type和record类型的优点,可以根据数据的行结构定义一种特殊的数据类型。用来存储从数据表中检索的到一行数据。
row_var table_name%rowtype;
PL/Sql 流控制语句
选择语句
if ...then
格式:
if <condition_expression> then
sql_sentence
end if;
<condition_expression> 为true时执行 sql_sentence语句。
表示逻辑运算时,and or not (且、或、非) ,表示为null时,if var is null then ...
if then else
if then ...
else if
else
end if;
case <sector>
when <expression_1> then plsql_sentence;
when <expression_2> then plsql_sentence;
...
end case;
<sector> 表示选择器,通常是一个变量。还记得sql语句中的case 。。。 when 。。。 then 。。。 else 。。。 end 吗?
PL/SQL 游标
游标提供了一种从表中检索数据并进行操作的灵活手段,游标主要用在服务器上,处理有客户端发给我服务器端的sql语句,或是批处理、存储过程、触发器中的数据请求。游标的作用就相当于指针。
PL/Sql异常处理
预定义异常
自定义异常