志在指尖
用双手敲打未来

oracle存储过程(语法学习)

oracle存储过程

概念存储子程序使用子程序存储位置存储在数据库中存储在使用程序中调用方式任何数据库东西或使用中都能够调用只用在子程序树立的使用中才能调用彼此调用不能够调用使用子程序能够调用存储子程序树立子程序的文档存储的位置oracle

oracle存储过程语法学习

Oracle存储进程:
1.1第一个存储进程
–创立存储进程
createorreplaceprocedureproc1(
p_para1varchar2,
p_para2outvarchar2,
p_para3inoutvarchar2
)as
v_namevarchar2(20);
begin
v_name:=’张三’;
p_para3:=v_name;
dbms_output.put_line(‘p_para3:’||p_para3);
end;
上面便是一个最简单的存储进程。一个存储进程大体分为这么几个部分:
创立句子:createorreplaceprocedure存储进程名
假如没有orreplace句子,则仅仅是新建一个存储进程。假如体系存在该存储进程,则会报错。Createorreplaceprocedure假如体系中没有此存储进程就新建一个,假如体系中有此存储进程则把本来删除去,从头创立一个存储进程。
存储进程名定义:包含存储进程名和参数列表。参数名和参数类型。参数名不能重复,参数传递方法:IN,OUT,INOUT
IN表明输入参数,按值传递方法。
OUT表明输出参数,能够理解为按引证传递方法。能够作为存储进程的输出结果,供外部调用者使用。
INOUT即可作输入参数,也可作输出参数。
参数的数据类型只需要指明类型名即可,不需要指定宽度。
参数的宽度由外部调用者决议。
进程能够有参数,也能够没有参数
变量声明块:紧跟着的as(is)关键字,能够理解为pl/sql的declare关键字,用于声明变量。
变量声明块用于声明该存储进程需要用到的变量,它的作用域为该存储进程。另外这儿声明的变量必须指定宽度。遵从PL/SQL的变量声明标准。
进程句子块:从begin关键字开始为进程的句子块。存储进程的详细逻辑在这儿来实现。
反常处理块:关键字为exception,为处理句子产生的反常。该部分为可选
结束块:由end关键字结果。
1.2存储进程的参数传递方法
存储进程的参数传递有三种方法:IN,OUT,INOUT.
IN按值传递,并且它不答应在存储进程中被从头赋值。假如存储进程的参数没有指定存参数传递类型,默以为IN
这一点与其它高级言语都不同。它相当于java在参数前面加上final关键字。
OUT参数:作为输出参数,需要注意,当一个参数被指定为OUT类型时,就算在调用存储进程之前对该参数进行了赋值,在存储进程中该参数的值仍然是null.
INOUT是真实的按引证传递参数。即可作为传入参数也能够作为传出参数。
———————————————————————–
———————————————————————–
Oracle存储进程语法学习:
存储进程创立语法:
createorreplaceprocedure存储进程名(param1intype,param2outtype)
as
变量1类型(值规模);
变量2类型(值规模);
Begin
Selectcount(*)into变量1from表Awhere列名=param1;
If(判别条件)then
Select列名into变量2from表Awhere列名=param1;
Dbms_output.Put_line(‘打印信息’);
Elsif(判别条件)then
Dbms_output.Put_line(‘打印信息’);
Else
Raise反常名(NO_DATA_FOUND);
Endif;
Exception
Whenothersthen
Rollback;
End;
注意事项:
1、存储进程参数不带取值规模,in表明传入,out表明输出
2、变量带取值规模,后面接分号
3、在判别句子前最好先用count(*)函数判别是否存在该条操作记录
4、用select。。。into。。。给变量赋值
5、在代码中抛反常用raise+反常名

未经允许不得转载:IT技术网站 » oracle存储过程(语法学习)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载