Sql Oracle名称已在使用中
我有一个脚本,我正在运行的家庭作业,看起来是这样的:Sql Oracle名称已在使用中,sql,oracle,Sql,Oracle,我有一个脚本,我正在运行的家庭作业,看起来是这样的: drop table burger_king_locations_clean; drop table burger_king_locations_unresolv; create table burger_king_locations_clean ( ... ); create table burger_king_locations_unresolv ( .... ); 但是当我运行这个程序时,我得到了下面的消
drop table burger_king_locations_clean;
drop table burger_king_locations_unresolv;
create table burger_king_locations_clean
(
...
);
create table burger_king_locations_unresolv
(
....
);
但是当我运行这个程序时,我得到了下面的消息,我不明白,因为我知道表已经不存在了,并且没有视图或任何其他具有该名称的对象
Table dropped.
drop table burger_king_locations_unresolv
*
ERROR at line 1:
ORA-00942: table or view does not exist
Table created.
Table created.
create table burger_king_locations_unresolv
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
我不明白,因为这个确切的东西是工作之前,但我把我的电脑在睡眠模式,然后回到这个,现在它根本不工作。有什么想法吗?你不需要清理一下桌子吗
drop table burger_king_locations_clean PURGE;
drop table burger_king_locations_unresolv PURGE;
“我有一个脚本,我正在运行的家庭作业,看起来是这样的”
你这么说。但是发布的输出显示了两个DROP语句的执行,其中一个失败,两个CREATE语句,其中一个运行两次
为什么会把餐桌上的汉堡包丢在那里代码>失败?谁知道呢?也许您已经放弃了它,也许之前的创建失败了
同样,我们无法告诉您为什么create table burger\u king\u locations\u unsolv
运行了两次。也许您的脚本在分号后面有一条斜杠。注意到,在每个拖放/创建之前至少有一条消息表明它已经被拖放或创建。您只能运行一次。如果您不断尝试反复运行相同的下拉列表(与creates相同),则会出现错误。。。。。是的,两个表只有一个create。。。。。两个表只有一个drop…@ShinTakezou-我们现在不应该将其关闭并再次打开“作为诊断工具吗?在您的示例中,您可以看到两个drop语句+三个create语句(两个ok“table created”x2和一个失败)。请在脚本中验证您没有执行两次..即“否”/“+分号等?@Limey-这只是伏都教:Oracle中的DDL语句已经在执行命令之前和之后发出(隐式)提交。当您将表放入回收站时,它将被重命名,以免与任何真实对象冲突,因此不需要这样做。回收站中的项目将获得一个对象名,如bin$zzLXL+emx1zgQAB/AQEIpQ==$0
,但如果同一脚本在睡眠状态之前按预期工作,该怎么办?目前还不清楚,OP也没有明确说明是否存在依赖关系,或者他在重新启动机器后从头开始编写脚本(错误)(顺便说一句,如果这不是一个严重的脚本错误,那么知道它是否处于睡眠状态的唯一方法是关闭机器,然后再次打开机器…一般性语句是通用的,但它们不能证明异常自动错误,并且不能应用于特定情况-这确实不是唯一的方法,但更容易确定)如果因为机器处于睡眠状态,Oracle数据库设法实现DDL不一致,我会非常不安。我同意APC可能正确诊断脚本中的斜杠(导致重复执行语句)。我们可以确定的唯一方法是使用完整的未编辑脚本。