1.单行注释--多行注释/*...*/
2.标志符号的命名规范
1)当定义变量时,建议用v_作为前缀 v_sal
2)当定义常量时,建议用c_作为前缀 c_rate
3)当定义游标时,建议用_cursor作为后缀 emp_cursor
4)当定义例外时,建议用e_作为前缀 e_error
3.块结构示意图
pl/sql块由三个部分构成:定义部分、执行部分、例外处理部分
如下所示:
declear--可选
/*定义部分----定义常量、变量、游标、例外、复杂数据类型*/
begin--必须
/*执行部分----要执行的pl/sql语句和sql语句*/
exception--可选
/*例外处理部分----处理运行的各种错误*/
end;
4.定义并执行一个过程
create procedure xf_pro1 is
begin
insert into mytest(name,passwd) values(‘xiaofei‘,‘1234‘);
end;
--查看错误信息
show error;
5.如何调用该过程
exec 过程名;
exec 过程名(参数1,参数2,...);
call 过程名(参数1,参数2,...);
例: execute xf_pro1;
exec xf_pro1;
6.java程序结果
public static void main(String[] args){
int a=1;//定义
try{
a++;//执行
}catch(Exception e){}//异常处理
}
7.实例:
实例1.只包括执行部分的pl/sql块
set serveroutput on--打开输出选项
set serveroutput off--关闭输出选项
最简单的块:
begin
dbms_output.put_line(‘hello,world‘);
end;
/*
相关说明:
dbms_output是oracle所提供的包(类似java的开发包),该包包含一些过程,put_line就是dbms_output包的一个过程
*/
实例2.包含了定义部分和执行部分的pl/sql块
declare
v_ename varchar2(5);
begin
select ename into v_ename from emp where empno=&no;
dbms_output.put_line(‘雇员名:‘||v_name);
end;
/
/*
相关说明:
--地址符是从控制台输入
--into v_name表示将查出信息放入到变量v_name中(即赋值)
--||表示连接符
*/
declare
--定义变量
v_name varchar2(5);
begin
--执行部分
select ename into v_ename from emp where empno=&aa;
--在控制台显示用户名
dbms_output.put_line(‘用户名:‘||v_ename);
end;
/
把用户名和薪水显示出来
v_ename varchar2(5);
v_sal number(7,2);
begin
select ename,sal into v_ename,v_sal from emp where empno=&empno;
--注意变量名要一一对应
dbms_output.put_line(‘雇员名:‘||v_ename||‘工资:‘||v_sal);
end;
/
实例3.包含定义部分、执行部分和例外处理部分
为了避免pl/sql程序的运行错误,提高pl/sql健壮性,应该对可能的错误进行处理
1)比如在实例2中,如果输入了不存在的雇员号,应当做例外处理
2)有时出现异常,希望用例外的逻辑处理
相关说明:oracle事先预定义了一些例外,no_data_found就是找不到数据的例外
declare
v_ename varchar2(5);
v_sal number(7,2);
begin
select ename,sal into v_ename,v_sal from emp wherer empno=&aa;
dbms_output.put_line(‘用户名是:‘||v_ename||‘工资:‘||v_sal);
--异常处理
exception
when no_data_found then
dbms_output.put_line(‘朋友,您输入的编号有误‘);
end;
/