ITPub博客

首页 > 数据库 > Oracle > 我建立一个procedure 为什么还会有ORA-00955: name is already used by an existing object 错误呢?

我建立一个procedure 为什么还会有ORA-00955: name is already used by an existing object 错误呢?

原创 Oracle 作者:moonsoft 时间:2019-06-07 15:09:05 0 删除 编辑
当一个procedure 和一个table 名字重复的时候 , 如果是存在的procedure 同名,那么会替换掉原先存在的procedure , 因为 or replace !但是table 存在了,你还用一样的名字建立procedure,那么oracle 知道你是table 还是procedure???![@more@]

我建立一个procedure 为什么还会有ORA-00955: name is already used by an existing object 错误呢?

我建立一个procudure 为什么还会有ORA-00955: name is already used by an existing object
是这样写的 .
--create autonomous transaction procedure

CREATE OR REPLACE PROCEDURE logging_infos (
log_info_in VARCHAR2,
log_time_in date
)
AS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO logging_infos
(log_info, log_time
)
VALUES (log_info_in, log_time_in
);

COMMIT;
END;


就是建立一个子交易,记录父交易的插入记录.
查看Toad 的oracle文档:

ORA-00955 name is already used by an existing object


Cause: An attempt was made to create a database object (such as a table, view, cluster, index, or synonym) that already exists. A user's database objects must have distinct names.

Action: Enter a unique name for the database object or modify or drop the existing object so it can be reused.

应该和procedure 无关啊,我原先没有建立过这个procedure , 其实即使建立过,那么我再次建立也是可以的啊,大虾指点究竟是为什么?
拜谢~~

当一个procedure 和一个table 名字重复的时候 , 如果是存在的procedure 同名,那么会替换掉原先存在的procedure , 因为 or replace !但是table 存在了,你还用一样的名字建立procedure,那么oracle 知道你是table 还是procedure???!

是不被允许的,我的就是这个情况

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/226700/viewspace-830836/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2005-01-20

  • 博文量
    412
  • 访问量
    331665