Oracle10gSpecific.DLL, Identifier too long

Posts   
 
    
Skeeterbug
User
Posts: 165
Joined: 21-May-2004
# Posted on: 03-Jan-2007 19:00:18   

I used the project converter to convert a SQL Server project to Oracle10g. Ran the DDL templates and ran them. Getting some really long identifiers, which Oracle has a limit on. Here is one of the many errors.

ALTER TABLE "UserPermission" ADD
    CONSTRAINT FK_UserPermission_PermissionType FOREIGN KEY 
    (
        "PermissionTypeId"
    ) 
    REFERENCES "PermissionType" 
    (
        "PermissionTypeId"
    ) 


ORA-00972: identifier is too long

Also, I am using the express edition (so i don't know if this is different), but going from SQL Server to Oracle, made the statements look like this:

ALTER TABLE "dbo"."UserPermission" ADD ... 

The users appear to be case insensitive, so really it should have been "DBO". Since express (not sure of the others), will execute the statements as the current logged in user (DBO), I just did a find/replace and removed "dbo". from the script.

Great work on this so far, it will save people a lot of work simple_smile

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39614
Joined: 17-Aug-2003
# Posted on: 04-Jan-2007 10:53:57   

Skeeterbug wrote:

I used the project converter to convert a SQL Server project to Oracle10g. Ran the DDL templates and ran them. Getting some really long identifiers, which Oracle has a limit on. Here is one of the many errors.

ALTER TABLE "UserPermission" ADD
    CONSTRAINT FK_UserPermission_PermissionType FOREIGN KEY 
    (
        "PermissionTypeId"
    ) 
    REFERENCES "PermissionType" 
    (
        "PermissionTypeId"
    ) 


ORA-00972: identifier is too long

That's indeed a thing that should be fixed. I'll see if I can fix it either in the converter or in the DDL templates.

Also, I am using the express edition (so i don't know if this is different), but going from SQL Server to Oracle, made the statements look like this:

ALTER TABLE "dbo"."UserPermission" ADD ... 

The users appear to be case insensitive, so really it should have been "DBO". Since express (not sure of the others), will execute the statements as the current logged in user (DBO), I just did a find/replace and removed "dbo". from the script.

I don't think that's necessary, as the tables are created with "dbo" as well. I left it as the same casing, as perhaps sometimes people want to keep the casing. So if you want "DBO" instead, go to the catalog explorer -> rename schema, then run the DDL template simple_smile

Great work on this so far, it will save people a lot of work simple_smile

Thanks!

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39614
Joined: 17-Aug-2003
# Posted on: 05-Jan-2007 13:30:40   

It has to be fixed in the template(s) for Oracle* DDL and DB2 (which also has this limit).

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39614
Joined: 17-Aug-2003
# Posted on: 12-Jan-2007 12:26:13   

I've uploaded a new set of templates. Please check if these fix your problem. simple_smile

Frans Bouma | Lead developer LLBLGen Pro