TIPS-Case Sensitive In Oracle Table/Column Name

印象中,ORACLE的Table Name, Column Name都是不分大小寫的。不過今天我摔了第二次,決心把這個Tip寫下來...

建Oracle Table,大部分我會徒手寫CREATE TABLE Script,偶爾偷懶會用Aqua Data Studio。今天用想驗證Transaction,於是用Aqua Data Studio的管理UI建了一個Table: Jeffrey。資料表建出來了,UI上看得到,但SELECT * FROM Jeffrey卻一直得到ORA-00942: table or view does not exist的訊息。

印象中之前似乎遇過一次,但原因、解法完全不記得了。求救同事,她檢查Table Create Script看到以下寫法:
CREATE TABLE "Jeffrey"
(
  "EmpNo"  NUMBER(3)                            NOT NULL,
  "Name"   VARCHAR2(16 BYTE)                    NOT NULL
)

這下子我全都想起來了,原來使用Aqua Data Studio建立資料表時,會忠實地保留使用者輸入的大小寫,等於在下指令時,用雙引號包住Table Name, Column Name。一般指令中,未包雙引號的名稱則會一律轉成大寫,所以SELECT * FROM Jeffrey其實會去找名為"JEFFREY"的資料表,因而擦身而過。

這問題以前遇過一次,偷懶沒記下來的結果是很久之後又花了時間摸索第二次(雖然這次有貴人相助,很快得到答案,但還是花了時間),That's why you see this post.

Published 24 December 2007 10:30 AM 由 Jeffrey
Filed under: ,


意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 

請輸入以上的數字:

【請注意】意見送出後可能需要幾分鐘才會出現在網頁上,請耐心等候。

搜尋

Go

<December 2007>
SunMonTueWedThuFriSat
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
 
RSS


BlogLook Score and Rank

Syndication