Moving from SQLServer to Oracle

Posts   
 
    
Alvaro
User
Posts: 52
Joined: 01-Jun-2004
# Posted on: 23-Feb-2005 14:34:29   

Hello, We have to migrate my app from SqlServer to Oracle and I think that LLBLGenPro is the tool that will make it feasible for us. However I run into some minor issues I'd like to discuss.

First, Oracle doesn't have identity fields like SqlServer, however I found solutions based on Oracle sequences and triggers that seem to provide the same functionality, as explained here: http://www.jlcomp.demon.co.uk/faq/autonumb.html . I'm supposing that the DatabaseGeneric compiled code can be one and the same for both databases even though identity fields would be handled differently, am I correct?

Second, Oracle doesn't seem to support case-sensitive table names. As our table names are in YourUsualCodingCase in SqlServer, it's a pain because entity names from the generic compiled code and the entity names in the persistence info factory from the dbspecific compiled code are in different casing, so we would have to manually change the entity names in the dbspecific project designer, unless maybe with a minor modificacion on the templates or whatever I can set LLBLGenPro to use case-unsensitive entity names comparison for the persistence info factories. Is there an option for this?

Cheers álvaro.-

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39933
Joined: 17-Aug-2003
# Posted on: 23-Feb-2005 14:49:14   

Alvaro wrote:

Hello, We have to migrate my app from SqlServer to Oracle and I think that LLBLGenPro is the tool that will make it feasible for us. However I run into some minor issues I'd like to discuss.

First, Oracle doesn't have identity fields like SqlServer, however I found solutions based on Oracle sequences and triggers that seem to provide the same functionality, as explained here: http://www.jlcomp.demon.co.uk/faq/autonumb.html . I'm supposing that the DatabaseGeneric compiled code can be one and the same for both databases even though identity fields would be handled differently, am I correct?

Yes. You have to specify which sequence to use per table in the designer for the oracle project. Stay away from triggers, only use sequences in this scenario, otherwise LLBLGen Pro isn't able to read back the value inserted.

Second, Oracle doesn't seem to support case-sensitive table names. As our table names are in YourUsualCodingCase in SqlServer, it's a pain because entity names from the generic compiled code and the entity names in the persistence info factory from the dbspecific compiled code are in different casing, so we would have to manually change the entity names in the dbspecific project designer, unless maybe with a minor modificacion on the templates or whatever I can set LLBLGenPro to use case-unsensitive entity names comparison for the persistence info factories. Is there an option for this?

If you use in Oracle YOUR_USUAL_CODING_CASE for tablenames, and you switch on correctnamecasing in the preferences before you create a project, you'll get for your entities: YourUsualCodingCase.

There is no option for case insensitive comparisons of entity names. The names are hardcoded in the switch case statement...

Frans Bouma | Lead developer LLBLGen Pro