在oracle中,存储过程是为了完成特定功能的SQL语句集,编译后存储在数据库中,用户通过指定存储过程名字并给出参数来执行它;语法格式为“create or replace procedure 存储过程名”。
本教程操作环境:windows7系统、oracle 11.2.0.1.0版,DELL G3电脑。
Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常(可写可不写,要增强脚本的容错性和调试的方便性那就写上异常处理)
存储过程它的使用主要是完成一项复杂的功能,如果直接使用sql语句则每次都需要进行编译,而存储过程只需要编译一次,以后直接调用即可,它的语法为
1 2 3 4 5 6 |
create or replace procedure procedure_name as begin extention; end; /
|
行1:
CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;
行2:
IS关键词表明后面将跟随一个PL/SQL体。
行3:
BEGIN关键词表明PL/SQL体的开始。
行4:
NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句;
行5:
END关键词表明PL/SQL体的结束
存储过程创建语法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
create or replace procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型(值范围); --vs_msg VARCHAR2(4000); 变量2 类型(值范围); Begin Select count(*) into 变量1 from 表A where列名=param1;
If (判断条件) then Select 列名 into 变量2 from 表A where列名=param1; Dbms_output。Put_line(‘打印信息’); Elsif (判断条件) then Dbms_output。Put_line(‘打印信息’); Else Raise 异常名(NO_DATA_FOUND); End if; Exception When others then Rollback; End;
|
注意事项:
1, 存储过程参数不带取值范围,in表示传入,out表示输出
类型可以使用任意Oracle中的合法类型。
2, 变量带取值范围,后面接分号
3, 在判断语句前最好先用count(*)函数判断是否存在该条操作记录
4, 用select 。。。into。。。给变量赋值
5, 在代码中抛异常用 raise+异常名
头条 22-04-30
头条 22-04-30
头条 22-04-30
头条 22-04-30
头条 22-04-30
头条 22-04-30
头条 22-04-30
头条 22-04-30
头条 22-04-30
头条 22-04-30
头条 22-04-30
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-29
头条 22-04-27
头条 22-04-27
头条 22-04-27
头条 22-04-27
头条 22-04-27
头条 22-04-27
头条 22-04-27
头条 22-04-27
头条 22-04-27