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: ,
Views: 8,214



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<December 2007>
SunMonTueWedThuFriSat
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication