如何撤消创建小写表名的sqlplus
太棒了!一个很棒的exe XD会发生多大的失败 如何创建此错误:如何撤消创建小写表名的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
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手册中有很好的记录: