随笔 - 100  文章 - 50  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(3)

随笔分类

随笔档案

文章分类

文章档案

收藏夹

我收藏的一些文章!

搜索

  •  

最新评论

阅读排行榜

评论排行榜

最近学习oracle存储过程时发现的一个问题,就是传入的变量命名不能跟要执行的数据表的字段一样,如果一样的话,
可能会导致传入的参数起不了用处。例子如下:
建立一个表:
-- Create table
create table T_TEST12
(
  ID NUMBER,
  NO VARCHAR2(60)
);
往这个表里面插入一些数据,

insert into t_test12 (ID, NO)
values (1, 'lin');

insert into t_test12 (ID, NO)
values (2, '13800162');

insert into t_test12 (ID, NO)
values (3, '13800163');

insert into t_test12 (ID, NO)
values (4, '13800164');

insert into t_test12 (ID, NO)
values (5, '13800165');

insert into t_test12 (ID, NO)
values (6, '13800166');

编写一个删除的存储过程,
 create or replace procedure delete_test(id in number) is  --变量名称id跟数据库的字段一样
begin
  delete from t_test12 where id =id;
  commit;
end delete_test;
执行以下操作:
exec delete_test(1); 执行完后,发现并不是只删除了id为1的数据,
而是把整个表的数据都删除了,如果要想得到相应的结果,则变量
的命名不能跟表的字段名一样。比如如下:
create or replace procedure delete_test(is_del_id in number) is  --变量名称id跟数据库的字段一样
begin
  delete from t_test12 where id =is_del_id;
  commit;
end delete_test;


posted on 2010-05-19 14:54 fly 阅读(399) 评论(0)  编辑  收藏 所属分类: 数据库学习

只有注册用户登录后才能发表评论。


网站导航: