`
touchmm
  • 浏览: 1004446 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

procedure 小应用

 
阅读更多

创建存储过程,语法:
create or replace procedure procedure_name
(parameter_name in|out|in out datatype)
is|as
begin
procedure_body;
end procedure_name;

执行存储过程:
1.exec pracedure_name;
2.call pracedure_name;

先建立一个表:
create table test(name varchar2(30),passwd varchar2(30));

再创建一个存储过程,向表里添加数据:
create or replace procedure yee_pro is
begin
insert into test values('陈林波','12082119');
end;

执行存储过程yee_pro:
1.SQL> exec yee_pro;
PL/SQL procedure successfully completed
但是当我用call方法去执行时就出错了:
2.SQL> call yee_pro;
call yee_pro
ORA-06576: not a valid function or procedure name
注:我明明创建了yee_pro存储过程的,怎么这里提示为无效的过程名呢?
但是当我建立一个带参数的存储过程,call调用时,能调用执行!
难道call procedure时必须是过程带有参数吗?


查看test表里的数据:
SQL> select * from test;

NAME PASSWD
------------------------------ ------------------------------
陈林波 12082119

注:每次执行此存储过程,都会向表里添加一条数据(当然,这些数据都是相同的)。


创建一个存储过程,删除表里的数据:
create or replace procedure yee_pro01 is
begin
delete from test where name='陈林波';
end;

用exec执行成功了,但是call方法就是不成功。

查看表里的数据,验证我的yee_pro01存储过程是否执行成功:
SQL> select * from test;

NAME PASSWD
------------------------------ ------------------------------

我们看到数据表里没有数据!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics