Oracle Procedure记录
admin
2023-04-20 21:22:47
0

1、定义
所谓存储过程(Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过
编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数
来调用并执行它,从而完成一个或一系列的数据库操作。
2、存储过程的创建
Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。
3. 使用存储过程的好处:
1.简化复杂的操作
2.增加数据的独立性
3.提高安全性
4.存储过程的语法
CREATE [OR REPLACE] PROCEDURE procedure_name [in | out | in out datatype]
IS|AS
<声明部分>
begin
<执行部分>
exception
<异常部分>
end;
4.1无参数的存储过程:

create or replace procedure p_test1 as
begin
for i in (select slbh,bdczh from dj_djb where slbh like '20170825%') loop
dbms_output.enable(buffer_size=>null);
dbms_output.put_line(i.slbh||','||i.bdczh);
end loop;
end;

begin
p_test1;
end;
4.2.有参的存储过程:
4.2.1.参数名 IN 数据类型 DEFAULT 值;
定义一个输入参数变量,用于传递参数给存储过程。在调用存储过程时,主程序的实际参数可以是常量、有值变量或表达式等。DEFAULT 关键字为可选项,用来设定参数的默认值。如果在调用存储过程时不指明参数,则参数变量取默认值。在存储过程中,输入变量接收主程序传递的值,但不能对其进行赋值。
ege:

create or replace procedure p_test2 (v_slbh in  varchar2 default 201711010025 )
as
v_bdczh dj_djb.bdczh%type;
begin
  select bdczh into v_bdczh from dj_djb where slbh =v_slbh;
  dbms_output.put_line(v_bdczh);
  end;

4.2.2.参数名 OUT 数据类型;
定义一个输出参数变量,用于从存储过程获取数据,即变量从存储过程中返回值给主程序。
在调用存储过程时,主程序的实际参数只能是一个变量,而不能是常量或表达式。在存储过程中,参数变量只能被赋值而不能将其用于赋值,在存储过程中必须给输出变量至少赋值一次。
ege:

create or replace procedure p_test3 (v_slbh varchar2 default 201711010025,v_bdczh out varchar2)
as
begin
  select bdczh into v_bdczh from dj_djb where slbh=v_slbh;
  dbms_output.put_line(v_slbh||','||v_bdczh);
  end ;
  ....调用.......
  declare
  v_1 dj_djb.bdczh%type;
   begin
    p_test3(v_bdczh=>v_1);
    end;

4.2.3.参数名 IN OUT 数据类型 DEFAULT 值;
定义一个输入、输出参数变量,兼有以上两者的功能。在调用存储过程时,主程序的实际参数只能是一个变量,而不能是常量或表达式。DEFAULT 关键字为可选项,用来设定参数的默认值。在存储过程中,变量接收主程序传递的值,同时可以参加赋值运算,也可以对其进行赋值。在存储过程中必须给变量至少赋值一次。
注:如果省略IN、OUT或IN OUT,则默认模式是IN。
5.查看存储过程错误原因:
select * from user_errors where name=upper(‘p_test1’);

                                                                                                   by wolihaito 2018.03.26

相关内容

热门资讯

最新引进“阿拉斗牌是不是有挂?... 有 亲,根据资深记者爆料阿拉斗牌是可以开挂的,确实有挂(咨询软件无需打开...
终于了解“微乐四川麻将有没有挂... 终于了解“微乐四川麻将有没有挂?”(确实真的有挂)您好,微乐四川麻将这个游戏其实有挂的,确实是有挂的...
【今日要闻】“白金岛十胡卡是不... 网上科普关于“白金岛十胡卡有没有挂”话题很是火热,小编也是针对白金岛十胡卡作*弊开挂的方法以及开挂对...
今日重大通报“爱来掌中宝是不是... 家人们!今天小编来为大家解答爱来掌中宝透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买...
【第一资讯】“乐游510k有没... 有 亲,根据资深记者爆料乐游510k是可以开挂的,确实有挂(咨询软件无需...
【第一消息】“圣盛游戏怎么开挂... 您好:圣盛游戏这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
“出差遭老板性侵”当事人崔丽丽... 12月29日,红星新闻记者从国内首例“职场性侵获工伤认定”案当事人崔丽丽处获悉,由于天津德科智控股份...
终于了解“熊猫四川麻将开挂神器... 网上科普关于“熊猫四川麻将有没有挂”话题很是火热,小编也是针对熊猫四川麻将作*弊开挂的方法以及开挂对...
终于明白“七彩丹霞到底有挂吗?... 家人们!今天小编来为大家解答七彩丹霞透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很...
今日重大消息“道游联盟到底有挂... 您好:道游联盟这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...