一、简单过程的创建
1.创建一个简单表
create table mytest(name varchar2(30), passwd varchar2(30));
2.创建过程
create or replace procedure sp_pro1 is
begin
--执行部分
insert into mytest values ('张三','abc123');
end;
如何查看错误信息:
show error;
如何调用该过程
(1)exec 过程名(参数值1,参数值2,....)
(2)call 过程名(参数值1,参数值2,....)
--删除表中的数据
--案例
create or replace procedure sp_proc2 is
begin
--执行部分
delete from mytest where name ='张三';
end;
PL/SQL编程的基础是"块"
PL/SQL编程的规范
(1)注释
单行注释--
select * from emp where empno=7788; --取得员工信息
多行注释
/*......*/来划分
(2)标识符号的命名规范
1)当定义变量时,建议用v_作为前缀 如 v_sal
2)当定义常量时,建议用c_作为前缀 如 c_rate
3)当定义游标时,建议用_cursor作为后缀如emp_cursor;
4)当定义例外时,建议用e_作为前缀 e_error
二、块结构示意图:
pl/sql块由三个部分构成:定义部分、执行部分、例外处理部分。
declare --declare部分是可选的
/*定义部分---定义常量、变量、游标、例外、复杂数据类型*/
begin
/*执行部分--要执行的pl/sql语句和sql语句*/
exception --exception部分可选
/*例外处理部分--处理运行的各种错误*/
1)--最简单的块
begin
dbms_output.put_line('hello');
end;
要显示结果:用set serverouput on 打开输出开关
2)--有定义和执行部分的块
declare
v_ename varchar2(5);--定义字符串常量
begin
select ename into v_ename from emp where empno=&no;
/*&no在这里表示要输入一个值,into v_ename表示把查询出来的值
输入给v_ename*/
dbms_output.put_line('用户名是:'||v_ename);
end;
改进:
--有定义和执行部分的块
--显示特定用户的工资和姓名
declare
v_ename varchar2(5);--定义字符串常量
v_sal number(7,2); --定义工资字符常量
begin
select ename,sal into v_ename,v_sal from emp where empno=&no;
/*&no在这里表示要输入一个值,into v_ename表示把查询出来的值
输入给v_ename*/
dbms_output.put_line('用户名是:'||v_ename||'工资是:'||v_sal);
end;
/
3)有异常出现的案例
declare
v_ename varchar2(5);--定义字符串常量
v_sal number(7,2); --定义工资字符常量
begin
select ename,sal into v_ename,v_sal from emp where empno=&no;
/*&no在这里表示要输入一个值,into v_ename表示把查询出来的值
输入给v_ename*/
dbms_output.put_line('用户名是:'||v_ename||'工资是:'||v_sal);
--异常处理
exception
when no_data_found then
dbms_output.put_line('朋友,你的编号输入有误!请重新输入');
end;
/
4)过程
--编写一个过程,可以输入雇员名,新工资,可以修改雇员的工资
create or replace procedure sp_proc3(swhName varchar2,newSal
number) is
--定义变量
begin
--执行部分,根据用户名修改工资
update emp set sal=newSal where ename=swhName;
end;
--调用时使用exec sp_proc3('SCOTT',3456)这样的形式
[@more@]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/240707/viewspace-1029027/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/240707/viewspace-1029027/