/* 7-22 知识总结?
/*1.什么是存储过程? 语法?
存储过程:类似于Java中的方法;完成一个特定的功能,一系列代码
(增删改操作和一些逻辑判断,select … Into 变量)构成;存在哪?存在数据库服务器上
特点:
1、预编译
2、可以重用
3、单独的设置权限
4、减轻网络的流量;
二、创建过程:
1、无参
2、输入参数
3、输入和输出参数
三、调用过程:
1、语句块中
2、Call调用
3、Execute 调用(命令行调用)
create or replace procedure re1
as
begin
insert into emp (empno,ename,job,sal) values(9100,'嬴荡', '秦王', 1200);
insert into emp (empno,ename,job,sal) values(9101,'秦孝公','诸侯',1000);
commit; --设置自动提交
end;
create or replace procedure re2
as
begin
delete from emp where empno=9100;
delete from emp where empno=9101;
commit;
end;
-- 调用 无参数的存储过程。
-- 1.begin end; 2.call 名字(); 3.命令行 excute 名字();
begin
re1;
end;
begin
re2;
end;
select * from emp;
call re1();
call re2();
-- 创建有参数的储存过程?
create or replace procedure re3(id1 number,id2 number) --注意 这里是没有分号的!
as
begin
insert into emp (empno,ename,job)values(id1,'紫霞','败家');
insert into emp (empno,ename,job)values(id2,'至尊宝','赚钱');
commit;
end;
create or replace procedure re4(id1 number,id2 number)
as
begin
delete from emp where empno in (id1 ,id2);
commit;
end;
call re3(1111,2222);
call re4(1111,2222);
select * from emp;
begin
re3(1,2);
end;
begin
re4(1,2);
end;
-- 统计数据表中的个数 临时变量的作用
create or replace procedure re3(id1 number,id2 number) --注意 这里是没有分号的!
as
v_count emp.empno%type; --定义临时变量 目的是统计一共多少数据
begin
insert into emp (empno,ename,job)values(id1,'紫霞','败家');
insert into emp (empno,ename,job)values(id2,'至尊宝','赚钱');
commit;
select count(*) into v_count from emp ;
dbms_output.put_line(v_count);
end;
call re3(1,2);
call re4(1,2);
select count(*) from emp;
-- 录入后 统计数据表中的个数 定义 id 和姓名 四个参数
create or replace procedure re5(
id1 in number,
id2 in number,
name1 in emp.ename%type,
name2 in emp.ename%type,
n1 out number -- 返回的参数 定义的n1
)
as
begin
insert into emp (empno,ename,job)values(id1,name1,'败家');
insert into emp (empno,ename,job)values(id2,name2,'赚钱');
commit;
select count(*) into n1 from emp;
end;
declare
v_count number(2);
begin
re5(3,4,'卢本伟','马飞飞',v_count);
dbms_output.put_line('总数量:'||v_count);
end;
call re4(3,4);
select * from emp;
手机扫一扫
移动阅读更方便
你可能感兴趣的文章