2011-09-07 184 views
0

我成功地將mysql遷移到oracle。但唯一的問題是在表名和字段名區分大小寫。在web中的一些頁面表示去sql工具和選項中的開發人員,並勾選ansi,但我找不到它。 在oracle網站論壇上說它是遷移的一部分。 有人有新版本的SQL開發人員,並從MySQL遷移?SQL開發人員mysql到oracle遷移

E.g

calendarColor成爲CALENDARCOLOR

+0

請告訴我們您正在運行的** **實際的SQL語句。理想情況下,也可以使用CREATE TABLE語句(只需複製SQL Developer的CREATE表,它會顯示在那裏) –

+0

'PROMPT創建表的日曆顏色... CREATE TABLE calendarcolor( calendarColorId NUMBER(10,0)NOT NULL ); 提示符下表calendarcolor創建主鍵約束PRIMARY_3 ... ALTER TABLE calendarcolor ADD CONSTRAINT PRIMARY_3 PRIMARY KEY ( calendarColorId ) ENABLE ;' –

+0

似乎生成代碼不大寫奇怪..要檢查回來在生成的代碼上 –

回答

1

我實在看不出這是一個問題。由於默認情況下Oracle的對象不區分大小寫,因此您可以繼續使用SELECT * FROM calendarColor來查詢它們。

如果需要他們是大小寫敏感的,使用引號,如:

CREATE TABLE "calendarColor" (...); 

SELECT * FROM TABLE "calendarColor"; 

參見:Schema Object Names and Qualifiers

+0

【引用】在命令開始位於第1行錯誤: SELECT * FROM 「calendarColor」 錯誤在命令行:1柱:14 錯誤報告: SQL錯誤:ORA-00942:表或視圖不存在 00942。00000 - 「表或視圖不存在」 *原因: *操作:[/ quote] –

+0

如果您創建表時未使用引號(即:不區分大小寫),則*有*表示引號或者如果您確實使用了引號,請使用全部大寫字母)。另請不要使用[BBCode](http://stackoverflow.com/questions/3788959/regex-to-split-bbcode-into-pieces/3792262#3792262)。這很糟糕,因此不支持它。 – NullUserException

+0

嗯..我不生成代碼。它由sql開發人員生成..嗯..似乎你不用它....better不回答... –

1

如果表是用

CREATE TABLE calendarcolor (calendarColorId NUMBER(10,0) NOT NULL); 

然後創建表名在內部以大寫形式存儲。當你運行如下語句:

select * from "calendarColor" 

然後你告訴甲骨文:表名應被視爲區分大小寫但因爲沒有表命名爲calenderColor,只有一個名爲CALENDARCOLOR您的語句失敗。

修復的方法是很容易的:去掉引號和改變選擇到

select * from calendarColor 
+0

在這裏,有一個解釋它比我更好的upvote – NullUserException