2016-03-15 95 views
0

我正在使用oracle SQL Developer将我们的SQL Server生产数据库迁移到oracle,我修正了许多问题(oracle 30 charachters objects name limit ...)但仍然遇到问题这个: 当我在我的SQL Server数据库中迁移一个名为transaction的对象时,我在我的oracle数据库中得到了TRANSACTION(我使用实体框架作为ORM,因此我的代码区分大小写,我无法更改它) 我需要知道如果有在线迁移时保留我的对象名称(表,列,SP,约束...)的方法。 感谢您的帮助。SQL Server到oracle迁移:如何保持区分大小写

+0

考虑这个重新:大写(和双引号):http://stackoverflow.com/questions/13346273/force-identifier-case-sensitivity-in-oracle – Marc

+0

你必须解释你是如何精确的执行迁移。通常情况下,您需要引用标识符以防止Oracle将其转换为大写:'create table“transactions”...','select * from“transactions”...' – mustaccio

+0

感谢您的反馈..我' m使用SQL开发人员在线迁移我无法更改生成的脚本(这是可能的使用离线方法),所以我不能添加引号..以及我认为我必须做手动重命名所有对象小写或使用脚本比较名称在与oracle的sql服务器和重命名他们 –

回答

1

您可以双引号的名称,这将保持区分大小写。在Oracle内部工作时不推荐使用这种方式,因为只有双引号才能起作用。

你想

select "myschema"."mytable"."mycolumn" from "mytable" 

Create table "mytable"因为什么......

,如果你使用SQL开发

select * from "mytable"作品时这样做,那么......

select * from mytable不被认可。

+0

我的问题是在我的代码中(** Repositories **)我从存储库调用EDMX实体,所以当我调用context.transaction它不同于context.transaction –