Oracle存储过程详细教程

分类: 365bet客户端下载 时间: 2025-07-17 05:33:55 作者: admin 阅读: 995

目录

一、创建存储过程语法

二、输出案例

三、调用存储过程

3.1、声明declare关键字

3.2、不声明declare关键字

3.3、call

四、带有参数的存储过程

五、in,on参数问题

六、异常写法

七、循环

7.1、while循环

7.2、for循环

八、基本增删改查

一、创建存储过程语法

create or replace procedure 存储过程名

is

begin

----------------------------

end;

二、输出案例

create or replace procedure myDemo01

is

begin

dbms_output.put_line('hello word, my name is stored procedure');

end;

三、调用存储过程

3.1、声明declare关键字

declare

begin

myDemo01;

end;

3.2、不声明declare关键字

begin

myDemo01; --在此处也可使用myDemo01();完成存储过程的调用

end;

3.3、call

call myDemo01();--call 存储过程名可完成调用,注意括号不能少

四、带有参数的存储过程

create or replace procedure myDemo02(name in varchar,age in int)

is

begin

dbms_output.put_line('name='||name||', age='||age);

end;

注:在调用存储过程时,如果存储过程没有参数,调用时括号()可以不带。

五、in,on参数问题

create or replace procedure myDemo04(name out varchar,age in int)

is

begin

dbms_output.put_line('age='||age);

select 'ex_sunqi' into name from dual;

end;

declare

name varchar(10);

age int;

begin

myDemo04(name=>name,age=>25);

dbms_output.put_line('name='||name);

end;

注:in代表输入,out用于输出,参数默认类型是in类型。

六、异常写法

create or replace procedure myDemo03

is

age int;

begin

age:=1/0;

dbms_output.put_line(age);

--异常

exception when others then

dbms_output.put_line('error');

end;

call myDemo03();

七、循环

7.1、while循环

create or replace procedure myDemo5

is

n_count number := 0;

begin

while n_count < 5 loop

dbms_output.put_line(n_count);

n_count := n_count + 1;

end loop;

end;

begin

myDemo5;

end;

7.2、for循环

create or replace procedure myDemo06

is

begin

FOR USE in (select * from T_USER_INFO) loop

if (USE.id<3) then

dbms_output.put_line(USE.USER_NAME);

end if;

end loop;

end;

CALL myDemo06();

八、基本增删改查

create or replace procedure mydemo07(ID in int, user_name in varchar,pssword in varchar, created_date in DATE,created_by IN varchar,UPDATED_date IN DATE,UPDATED_by IN varchar,is_valid IN varchar)

is

begin

insert into T_USER_INFO VALUES(ID,user_name,pssword,created_date,created_by,UPDATED_date,UPDATED_by,is_valid);

--UPDATE T_USER_INFO t SET t.USER_NAME='sunqi' WHERE t.ID=ID ;

--DELETE T_USER_INFO t WHERE t.ID=ID ;

commit; --提交

end;

begin

mydemo07(3,'ex_sunqi','666666',SYSDATE,'ex_sunqi',SYSDATE,'ex_sunqi','Y');

end;

相关文章

365bet客户端下载

探访乐视大厦,我们看到了“神仙日子”的另一面

365bet客户端下载

电源模块综合排名

假的网站365怎么看

感受使用蓝悦A2哪款好用?有没有区别?全新质量反馈揭秘