· 介绍
块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上就是编写pl/sql块。要完成相对简单的应用功能,可能只需要编写一个pl/sql块 ; 但是如果要想实现复杂的功能,可能需要在一个pl/sql块中嵌套其它的pl/sql块
· 块结构
块有三部分组成
块 = 定义部分 + 执行部分 + 例外部分
declear
/*定义部分------------定义常量、变量、游标、例外、复杂数据类型*/
begin
/*执行部分------------要执行的pl/sql语句和sql语句*/
exception
/*例外处理部分-------处理执行的各种错误*/
end;
定义部分 + 例外部分 = 可选的
执行部分 必须的
· 和JAVA程序做个简单比较
· 实例1
set serveroutput on/off --打开/关闭输出选项
begin
dbms_output.put_line('Hello World');
end;
♀ 相关说明
dbms_output是oracle所提供的包 包下就只有函数和过程
· 实例2
declare
v_ename varchar2(5) ; --定义字符串变量
v_sal number(7 , 2) ; --定义字符串变量
begin
select ename , sal into v_ename , v_dal from emp where empno=&no;--地址符表示编号控制台输入
dbms_output.put_line('雇员名:'||v_ename||'工资:'||v_sal);
end;
♀ 相关说明
· 实例3
增加了例外部分
●比如实例2中输入的编号不存在怎么办?
●有时候出现异常有其它的逻辑来处理
declare
v_ename varchar2(5) ; --定义字符串变量
v_sal number(7 , 2) ; --定义字符串变量
begin
select ename , sal into v_ename , v_sal from emp where empno=&no;--地址符表示编号控制台输入
dbms_output.put_line('雇员名:'||v_ename||'工资:'||v_sal);
exception
when no_data_found then
dbms_output.put_line('朋友,你的编号输入有误!!');
end;
& 表示接收从控制台输入变量
Oracle事先预定义了一些例外,no_data_found就是找不到数据的例外