如何撤消创建小写表名的sqlplus

如何撤消创建小写表名的sqlplus,sql,oracle,Sql,Oracle,太棒了!一个很棒的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" VA

太棒了!一个很棒的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语句)

任何人 稍后找到解决方案:

表格可以包含小写字母!!! 但是他们需要被引用

 select * from "ALL_NORMALIDS_sqlldr" 
工作

 -- i decided to open the case for others who faced something like this :)
 -- have a nice day!

一个简单的重命名命令就可以做到这一点。这是在Oracle 10G版本上测试的。应适用于Oracle 10G以上的所有版本

rename "ALL_NORMALIDS_sqlldr" to ALL_NORMALIDS_SQLLDR

这是Oracle中相当标准的行为。由于您使用双引号创建了表,现在需要在SELECT语句中使用引号。列也是如此。这就是SQL标准要求引用标识符的工作方式,并且在Oracle手册中有很好的记录: