-1
這太神奇了!如何洙多失敗可能發生在一個真棒EXE XD如何撤消sqlplus創建的小寫表名
如何創建此錯誤:
CREATE TABLE "ABC"."ALL_NORMALIDS_sqlldr"
(
"OID" NUMBER(6,0),
"NODE" VARCHAR2(50),
"TRANSTYPE" VARCHAR2(30),
"CREATED" DATE,
"UPDATED" DATE)
結果是
Table Created.
:
cd "c:\new folder\"
sqlplus ABC/[email protected]:1530/ALPHABET
@somefile.sql
;
commit;
exit
的somefile.sql內
後來試圖插入表中的東西后,發現我甚至不能選擇它(在sqlplus或sqldeveloper中)
試過各種:
select * from ALL_NORMALIDS_sqlldr;
seoect * from ALL_NORMALIDS_SQLLDR;
ERROR at line 1:
ORA-00942: table or view does not exist
,但它並apear的SQLDeveloper :)
的表列表中還發現,有:
select *
from all_objects
where object_type in ('TABLE','VIEW')
and object_name = 'ALL_NORMALIDS_sqlldr'
無法刪除,不能覆蓋(由以前的創建表語句)
anywho 後來發現解決方案:
表格可以包含小寫字母! 但他們需要引用!
select * from "ALL_NORMALIDS_sqlldr"
作品!!!
-- i decided to open the case for others who faced something like this :)
-- have a nice day!
這在Oracle中是非常標準的行爲。由於您使用雙引號「」「創建了表,因此您現在需要在SELECT語句中使用引號。列也是如此。 – abhi
這就是SQL標準要求帶引號的標識符工作的方式,並且在Oracle手冊中有詳細記錄:http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements008.htm#i27561 –