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 ????/ 展开
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 ????/ 展开
2个回答
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;
FUNCTION getmaxandsum RETURNS NUMBER
你原来那个已存在的东西, 是一个 FUNCTION
也就是一个 函数.
SQL> create or replace procedure getmaxandsum
你新创建的, 是一个 procedure
也就是一个 存储过程.
函数 和 存储过程. 之间, 不能重名.
你要删除的话, 需要
SQL> drop procedure getmaxandsum;
修改为
SQL> drop function getmaxandsum;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询