2011-09-07 109 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