太神奇了!多么糟糕的失败可能发生在一个令人敬畏的exe XD
如何创建此错误:
cd "c:\new folder\"
sqlplus ABC/abc@10.0.10.12:1530/ALPHABET
@somefile.sql
;
commit;
exit
在somefile.sql中:
CREATE TABLE "ABC"."ALL_NORMALIDS_sqlldr"
(
"OID" NUMBER(6,0),
"NODE" VARCHAR2(50),
"TRANSTYPE" VARCHAR2(30),
"CREATED" DATE,
"UPDATED" DATE)
结果是
Table Created.
之后尝试将内容插入表中后,注意到我甚至无法选择它(在sqlplus或sqldeveloper中)
试过各种各样的事情:
select * from ALL_NORMALIDS_sqlldr;
seoect * from ALL_NORMALIDS_SQLLDR;
ERROR at line 1:
ORA-00942: table or view does not exist
但是它在sqldeveloper的表列表中确实存在 也找到了:
select *
from all_objects
where object_type in ('TABLE','VIEW')
and object_name = 'ALL_NORMALIDS_sqlldr'
无法删除,无法覆盖(通过以前的create table语句)
anywho 后来找到解决方案:
表可以包含小写字母!!! 但他们需要引用!!!
select * from "ALL_NORMALIDS_sqlldr"
工作!!!
-- i decided to open the case for others who faced something like this :)
-- have a nice day!
答案 0 :(得分:1)
一个简单的重命名命令应该可以解决问题。这是在Oracle 10G版本上测试的。应该适用于Oracle 10G以上的所有版本。
rename "ALL_NORMALIDS_sqlldr" to ALL_NORMALIDS_SQLLDR