oracle sql 存储过程

SQL>descgetmaxandsumFUNCTIONgetmaxandsumRETURNSNUMBERArgumentNameTypeIn/OutDefault?--... SQL> desc getmaxandsum
FUNCTION getmaxandsum RETURNS NUMBER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
X NUMBER IN
Y NUMBER IN/OUT

SQL> create or replace procedure getmaxandsum(
2 var_x in number,var_y in out number)
3 is
4 begin
5 if var_x<var_y then
6 dbms_output.put_line('var_y'||var_y);
7 else dbms_output.put_line('var_x='||var_x);
8 end if;
9 var_y:=var_x+var_y;
10 end;
11 /
create or replace procedure getmaxandsum(
*
ERROR at line 1:
ORA-00955: name is already used by an existing object

SQL> drop procedure getmaxandsum;
drop procedure getmaxandsum
*
ERROR at line 1:
ORA-04043: object GETMAXANDSUM does not exist

这是怎么回事?desc 存储过程(getmaxandsum)的时候,存储过程(getmaxandsum)存在。我创建它的时候也提示我此存储过程存在,但是我删除它的时候为什么就提示我它不存在呢?另外,create and replace 表示创建或者替代,也就是说如果不存在就创建如果存在就替代。为什么存在了不让创建还提示说是已存在? why ????/
展开
 我来答
匿名用户
2013-08-26
展开全部
desc getmaxandsum
FUNCTION getmaxandsum RETURNS NUMBER

你原来那个已存在的东西, 是一个 FUNCTION
也就是一个 函数.

SQL> create or replace procedure getmaxandsum

你新创建的, 是一个 procedure

也就是一个 存储过程.

函数 和 存储过程. 之间, 不能重名.

你要删除的话, 需要
SQL> drop procedure getmaxandsum;

修改为

SQL> drop function getmaxandsum;
厍曼冬6o
2013-08-25 · TA获得超过1569个赞
知道小有建树答主
回答量:1336
采纳率:0%
帮助的人:1207万
展开全部
已经存在叫GETMAXANDSUM 的函数了,不能再用这个名字建存储过程了。
因为没有这个过程,所以删除过程的时候提示不存在
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式