oracle_11gR2_10 存储过程PROCEDURE(介绍,输入,输出参数,使用,维护)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这是有声音的视频, 请检查耳机或者音箱 声音输出设备
教程使用 Oracle 11g Release 2 版本
内容:存储过程PROCEDURE(介绍,输入,输出参数,使用,维护)
存储过程 - 执行一个任务,该任务包括了一系列的PL SQL语句,存储在数据库中,成为数据库一个对象。
- 效率比较高的,但你创建一个存储过程它会进行一个判断编译的。
===================================
创建一个简单的存储过程
SQL> CREATE OR REPLACE PROCEDURE xs_proc
2 IS
3 BEGIN
4 NULL;
5 END;
6 /
Procedure created.
如何执行:
SQL> EXECUTE xs_proc;
PL/SQL procedure successfully completed.
或者执行
SQL> BEGIN
2 xs_proc;
3 END;
4 /
PL/SQL procedure successfully completed.
================================
存储过程显示一些信息
SQL> CREATE OR REPLACE PROCEDURE xs_proc
2 IS
3 BEGIN
4 DBMS_OUTPUT.PUT_LINE('hello');
5 END;
6 /
SQL> EXECUTE xs_proc;
要设置为ON , 才会把 hello 显示出来
SQL> SET SERVEROUTPUT ON
SQL> EXECUTE xs_proc;
==================================================
CREATE TABLE xue_sheng( id integer, xing_ming varchar(25), yu_wen number,shu_xue number);
INSERT INTO xue_sheng VALUES(1,'ZhanSan',80,90);
INSERT INTO xue_sheng VALUES(2,'LiSi',85,87);
==================================================
只带一个输入参数 ,把查询的结果显示出来
SQL> CREATE OR REPLACE PROCEDURE xs_proc(temp_id IN integer)
2 IS
3 name varchar2(25);
4 BEGIN
5 select xing_ming into name from xue_sheng where id=temp_id;
6 DBMS_OUTPUT.PUT_LINE(name);
7 END;
8 /
SQL> execute xs_proc(1);
ZhanSan
------------------
当输入学生的名字, 就会把他的总分(语文+数学)显示出来。
CREATE OR REPLACE PROCEDURE xs_proc(temp_name IN varchar2 )
IS
num_1 number;
num_2 number;
BEGIN
select yu_wen,shu_xue into num_1,num_2 from xue_sheng where xing_ming=temp_name;
DBMS_OUTPUT.PUT_LINE(num_1 + num_2);
END;
/
SQL> EXECUTE xs_proc('ZhanSan');
170
====================================================
输入参数 和 输出参数一起使用
SQL> CREATE OR REPLACE PROCEDURE xs_proc(temp_name IN varchar2,temp_num OUT number )
2 IS
3 num_1 number;
4 num_2 number;
5 BEGIN
6 select yu_wen,shu_xue into num_1,num_2 from xue_sheng where xing_ming=temp_name;
7 temp_num := num_1 + num_2;
8 END;
9 /
Procedure created.
SQL> DECLARE
2 tname varchar2(25);
3 tnum number;
4 BEGIN
5 tname:='ZhanSan';
6 xs_proc( tname,tnum );
7 DBMS_OUTPUT.PUT_LINE( tnum );
8 END;
9 /
170
PL/SQL procedure successfully completed.
=============================================
维护存储过程
1、查看过程状态
SELECT object_name,status FROM USER_OBJECTS WHERE object_type='PROCEDURE';
2
、重新编译过程
ALTER PROCEDURE xs_proc COMPILE;
3、查看过程的源代码
SELECT * FROM USER_SOURCE WHERE TYPE='PROCEDURE';
4、删除存储过程
DROP PROCEDURE xs_proc;
总结一下吧, 主要是学习 存储过程的 使用, 包括 输入 输出参数 的例子。视频结束了 88