ORA-01450: maximum key length (6398) exceeded (Devart.Data.Oracle.OracleException)

ORA-01450: maximum key length (6398) exceeded (Devart.Data.Oracle.OracleException)

Postby anand123 » Tue 10 Oct 2017 05:26

This error occurs when we use fluent api, works fine with edmx.

complete details posted in https://stackoverflow.com/questions/46592393/ora-01450-maximum-key-length-6398-exceeded-devart-data-oracle-oracleexceptio/46593443#46593443

DevArt suggested to use ry setting config.CodeFirstOptions.TruncateLongDefaultNames=true. but this doesn't help.

below one of the table scripts causing this error.
Code: Select all
CREATE TABLE DADeskSettings (
  UserID NVARCHAR2(2000) NOT NULL,
  Password NVARCHAR2(2000) NOT NULL,
  DADeskURL NVARCHAR2(2000) NOT NULL,
  WebURL NVARCHAR2(2000) NOT NULL,
  IsDADeskSettings NUMBER(1) NOT NULL,
  DAType VARCHAR2(4 CHAR) NOT NULL,
  UPDATEDADESK NUMBER(1) NOT NULL,
  isshortseavoy NUMBER(1) NULL,
  CreatedBy VARCHAR2(8 CHAR) NULL,
  UpdatedBy VARCHAR2(8 CHAR) NULL,
  CONSTRAINT PK_DADeskSettings PRIMARY KEY (UserID, Password, DADeskURL, WebURL, IsDADeskSettings, DAType)
)

ORA-01450: maximum key length (6398) exceeded


It is very critical issue, has to be fixed very soon. please advise.

regards,
Anand
anand123
 
Posts: 17
Joined: Thu 30 Jan 2014 08:58

Re: ORA-01450: maximum key length (6398) exceeded (Devart.Data.Oracle.OracleException)

Postby Shalex » Tue 10 Oct 2017 15:08

You are using Code-First Approach (the database structure is generated in runtime), aren't you?

There are two alternative ways to solve the issue:

1) upgrade to 9.4.280 or higher to get a fix
https://www.devart.com/dotconnect/oracle/revision_history.html
9.4.280 25-May-17
The support of EF Core models with string columns, which are defined without length limit and participate in PKs, FKs, indices, is improved

2) add a length size to your mapping so that the total length of all columns participating in PK would not exceed the 6398 limit
Shalex
Devart Team
 
Posts: 7839
Joined: Thu 14 Aug 2008 12:44

Re: ORA-01450: maximum key length (6398) exceeded (Devart.Data.Oracle.OracleException)

Postby anand123 » Tue 10 Oct 2017 16:47

Thanks for your reply.

actually we are not using code first.

Database already exists. we just use fluent api for configuration and mapping.

actually it works for administrator db account.

2) add a length size to your mapping so that the total length of all columns participating in PK would not exceed the 6398 limit
Please advise where need to configure this, any example.? because this is one of the tables cause this issue, assume there are more other tables as well.


regards,
anand
anand123
 
Posts: 17
Joined: Thu 30 Jan 2014 08:58

Re: ORA-01450: maximum key length (6398) exceeded (Devart.Data.Oracle.OracleException)

Postby Shalex » Wed 11 Oct 2017 16:00

anand123 wrote:Please advise where need to configure this, any example
Here is an example of fluent mapping in the OnModelCreating method:
Code: Select all
      builder.Entity<YourEntityName>()
        .Property(p => p.YourPropertyName)
        .HasMaxLength(YourValue);
Shalex
Devart Team
 
Posts: 7839
Joined: Thu 14 Aug 2008 12:44


Return to dotConnect for Oracle