ORA-01450: maximum key length (string) exceeded
CREATE TABLE ABC
(ADAPTERINSTID NUMBER(12),
MOTYPEID NUMBER(12),
GROUPDISCID VARCHAR(3000),
MEMBER_MOTYPEID NUMBER(12),
MEMBER_MOINSTID VARCHAR(3000),
primary key (
ADAPTERINSTID,
MOTYPEID,
GROUPDISCID,
MEMBER_MOTYPEID,
MEMBER_MOINSTID));
This is Oracle 11.2 and db_block_size is set to 8192 , Need help .
One way is use db_block_size like 16 K
thanks in advance,
From Show parameter nls_length_semantics
We come to know its --> nls_length_semantics CHAR
Will below solution works ?
ALTER SYSTEM SET NLS_LENGTH_SEMANTICS='BYTE' scope=both;
This I found at ORA-01450: maximum key length (6398) exceeded
thanks
Similar Messages
-
ORA 01450 : maximum key length (1942) exceeded
hI all,
i got that message when try to create index.
ORA 01450 : maximum key length (1942) exceeded
Regards,Maximum key length also depends on tablespace block size. It seems that your value (1942) may be for 2K blocks.
At least for my 10.2.0.1.0 on Windoze it takes
1478 for 2k tablespace
3118 for 4k tablespace
6398 for 8k tablespace
If you have 2K blocks I'd say it is somewhat rather small blocks, I'd normally use 8K blocks.
So if you have possibility (have at least version 9, probably 9.2 don't know exactly) to create tablespaces with non default blocksize then as a temporal solution you can create tablespace with larger blocksize and create index in it.
Of course so you have to allocate also some memory for these blocksizes and so divide your memory in possibly less utilized pieces.
See example for my 8k default blocksize test DB:
SQL> create table v (a varchar2(4000), b varchar2(4000), c varchar2(4000));
Table created.
SQL> insert into v values (lpad('a', 4000, 'a'), null, null);
1 row created.
SQL> create index vidx on v (a, b, c);
create index vidx on v (a, b, c)
ERROR at line 1:
ORA-01450: maximum key length (6398) exceeded
SQL> alter system set db_16k_cache_size = 10240;
System altered.
SQL> create tablespace big datafile 'big.dbf' size 10 m blocksize 16k;
Tablespace created.
SQL> create index vidx on v (a, b, c) tablespace big;
Index created.
Gints Plivna
http://www.gplivna.eu
Message was edited by:
gintsp
Of course inserting a row was completely unnecessary :) -
[b]ORA-01450: maximum key length exceeded[/b]
Hi I get this error when trying to migrate MS Access 2000 to Oracle. I get this error on foreign key and primary keys saying that the maximum key length has been exceeded.
What does this mean and how can I fix it? Can anyone help?
Thanks
RayMaximum key length also depends on tablespace block size. It seems that your value (1942) may be for 2K blocks.
At least for my 10.2.0.1.0 on Windoze it takes
1478 for 2k tablespace
3118 for 4k tablespace
6398 for 8k tablespace
If you have 2K blocks I'd say it is somewhat rather small blocks, I'd normally use 8K blocks.
So if you have possibility (have at least version 9, probably 9.2 don't know exactly) to create tablespaces with non default blocksize then as a temporal solution you can create tablespace with larger blocksize and create index in it.
Of course so you have to allocate also some memory for these blocksizes and so divide your memory in possibly less utilized pieces.
See example for my 8k default blocksize test DB:
SQL> create table v (a varchar2(4000), b varchar2(4000), c varchar2(4000));
Table created.
SQL> insert into v values (lpad('a', 4000, 'a'), null, null);
1 row created.
SQL> create index vidx on v (a, b, c);
create index vidx on v (a, b, c)
ERROR at line 1:
ORA-01450: maximum key length (6398) exceeded
SQL> alter system set db_16k_cache_size = 10240;
System altered.
SQL> create tablespace big datafile 'big.dbf' size 10 m blocksize 16k;
Tablespace created.
SQL> create index vidx on v (a, b, c) tablespace big;
Index created.
Gints Plivna
http://www.gplivna.eu
Message was edited by:
gintsp
Of course inserting a row was completely unnecessary :) -
Cloning problem: ORA-00059: maximum number of DB_FILES exceeded
Hi everyone!
I'm trying to clone our data warehouse over an existing test instance, DMART01. Here's what I did:
1. on the data warehouse - alter database backup controlfile to trace;
2. edited the trace file to change the db name and path of the datafiles
3. logon to sqlplus in DMART01 and run my altered trace file.
4. Below is the error I'm getting:
SQL> @clone09142009.sql
ORACLE instance started.
Total System Global Area 1358954496 bytes
Fixed Size 2128280 bytes
Variable Size 1203668584 bytes
Database Buffers 150994944 bytes
Redo Buffers 2162688 bytes
CREATE CONTROLFILE REUSE SET DATABASE "DMART01" RESETLOGS NOARCHIVELOG
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-00059: maximum number of DB_FILES exceeded
ORA-01110: data file 211:
'/data/oracle/dmart01/d05/oracle/dmart01data/DW_PROD_MEDIUM11.dbf'
In my trace file it has
CREATE CONTROLFILE REUSE SET DATABASE "DMART01" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 500
MAXINSTANCES 1
MAXLOGHISTORY 1816
Additional information - the data warehouse has an entire tablespace with many datafiles that I don't want in DMART01. I edited those datafile lines out of my trace file. Could some remnants of that be causing my problems? The DB_FILES parameter in the warehouse is set to 500. In DMART01 it's only 200. In the clone, I only want to bring over 61 datafiles. Besides, I thought that in the create controlfile statement would set the parameter, in this case to 500.
I'm stumped. Any suggestions?
Thanks!
SharonI answered my own question. If anyone is curious, here's what I did:
in DMART01
1. startup nomount;
2. create pfile from spfile;
3. shutdown immediate;
4. edited pfile to have dw_files=500
5. startup nomount pfile=initDMART01.ora;
6. create spfile from pfile;
7. shutdown immediate;
8. @clone09142009.sql -
Ora-00020 maximum no .of connections exceeded
Hi All,
I tried to connect the production Db is says Maximum number of connections exceeded.
How to overcome this situation.
I stoppped and bounced the Db.
The process paramter in pfile is 50
Is there any to overcome thisc:\sql>oerr ora 00020
00020, 00000, "maximum number of processes (%s) exceeded"
*Cause: All process state objects are in use.
*Action: Increase the value of the PROCESSES initialization parameter.
Increasing the PROCESSES parameter as suggested by the error information would remove the issue.
If the database has been working fine for an extending period of time without this error you should consider finding out what caused the increase so you can set parameter appropriately. Could be an increase in use or an application leaking connections. -
ORA-Error: Maximum number of Processes exceeds
Hi,
Today we got one Oracle error: Maximum number of Processes exceeds while connects to our Oracle Database.
We have application running on our DB, which have 50 threads running and making connection to Oracle Schema.
In our init.ora file the Processes Parameter is set to 50.
But we also have another init<Schema Name>.ora file which has Processes Parameter as 50.
When I search on this error, I got that it is due to no. of user processes on Oracle instance.
What are these user processes exactly?
If we set the Processes Parameter as 150, and we have RAC environment with 3 Cluster, does it means we have 150*3 processes can run at a time.
The other doubt I have is that: Is this parameter is instance based, SID based or cluster based?
Please provide some input on this.
Thanks in Advance.
Manoj MacwanIf you don't issue
alter system set processes=150 scope=both sid='<your instance 1>'
all instances will be allowed to fork 150 processes.
The other poster is incorrect.
Sybrand Bakker
Senior Oracle DBA -
ORA-31005: Path name length 3125 exceeds maximum length 1024
what does this error mean?
how to resolve it and how to track where it is occuring.
it is a xml parsing error but which path is it talking about?
str_sqlstring contains xml in string format.
xmlvar := xmltype('ROOT',str_xmlstring);
doc := dbms_xmldom.newDOMDocument(xmlvar);
ndoc := dbms_xmldom.makeNode(doc);
dbms_xmldom.writetobuffer(ndoc, str_buffer);Thanks for your time Marco.
Here is the header:
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2010 rel. 2 (http://www.altova.com) by Joe (DSI) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" elementFormDefault="qualified" attributeFormDefault="unqualified" xdb:storeVarrayAsTable="true" xdb:mapStringToNCHAR="true" xdb:mapUnboundedStringToLob="true">
I made the following change -
<xs:element name="Data" xdb:maintainDOM="false" xdb:SQLName="LOB_DATA" xdb:SQLType="CLOB"/>
I received this error -
ORA-31094: incompatible SQL type "CLOB" for attribute or element "Data"
ORA-06512: at "XML_TEST.XML_TEST_SCHEMA_REGISTER", line 48
I did a little more testing after the first post. I used the same type as an element that is defining image data.
<xs:element name="Data" type="xs:base64Binary" xdb:maintainDOM="false" xdb:SQLName="LOB_DATA" xdb:SQLType="BLOB"/>
While this did register and I was able to load a record, I am guessing that this will render the data for this element usless but at least the record loads. I'll still need to resolve this issue as the .pdf data is important.
Thanks
Joe -
Function Based Index and ORA-01450
The following DDL produces ORA-01450 (maximum key length (758) exceeded) :
create index test_fn_ix1 on ausv_int_acc (test_package.test_function(intacc_username));
Here's the package :
create or replace package test_package
is
function test_function (value_in varchar2) return varchar2 deterministic;
end test_package;
create or replace package body test_package
is
function test_function (value_in varchar2) return varchar2
is
begin
return ''| |value_in;
end test_function;
end test_package;
Obviously this is only a test function but I have a real function I want to use - I have just tried to simplify the problem.
How does Oracle know how long the function result is ? - it doesn't because you can't specify return length of a function, just the type !
I have got round this problem thus :
create index test_fn_ix1 on ausv_int_acc (substr(test_package.test_function(intacc_username),1,100));
Surly there's a tidier way ???
Thanks for any help
AngusHi,
You can add SUBSTRs, like this:
CREATE UNIQUE INDEX addresses_uq1
ON addresses ( UPPER( SUBSTR (REGEXP_REPLACE( STREET1,'([^[:alnum:]])',''), 1, 50) ),
UPPER( SUBSTR (REGEXP_REPLACE( STREET2,'([^[:alnum:]])',''), 1, 50) ),
UPPER( SUBSTR (REGEXP_REPLACE( CITY, '([^[:alpha:]])',''), 1, 50) ),
COUNTRY_CODE,
STATE_CODE );Why?
Try this:
CREATE OR REPLACE VIEW view_x
AS
SELECT UPPER( REGEXP_REPLACE( STREET1,'([^[:alnum:]])','') ) AS street1
FROM addresses;
DESC view_xYou'll see that view_x.street1 is VARCHAR2 *(4000)* .
You and I know that the REGEXP_REPLACE function is taking a 50-character (max) string, and, if anything, reducing its size. But the system doesn't figure out what REGEXP_REPLACE is doing; for all it knows, REGEXP_REPLACE could be returning any VARCHAR2, so it allows room for the biggest possible VARCHAR2. -
ORA-01450 when trying to create index on xmltype column
Hi,
I have a table that contains an xmltype column. It is a schema-based column and uses object-relational structured storage. When I tried to create an index like:
create index ssual_sipuser_idx on ssua_line (extractValue(ssual_configuration, '/ssuaLineApplication/sipUser'));
I got the following:
ORA-01450: maximum key length (3118) exceeded
The sipUser tag is of string type. I have also tried creating the index on the extract function.
create index ssual_sipuser_idx on ssua_line (ssual_configuration.extract('/ssuaLineApplication/sipUser/text()').getStringVal())
Gave me the same error message. My database block size is 4k. This is Oracle 9.2.0.4 running on Solaris.
Any help will be appreciated.
Thanks,
GloriaThanks for the reply, Coby.
My field is really small, probably around 10 bytes. Actually I've been testing on two servers, a 9201 and a 9204. I know that Oracle doesn't support XML DB on 9201 anymore but our company hasn't switched over yet. Anyways, here's really what I saw:
9201
- creating an index with extractValue() or extract() doesn't work
9204
- extractValue() works
- extract() still doesn't work
Now I'm using the substr() workaround. I should also mention that extractValue() with a numeric field works (using getNumberVal()).
I wonder if specifying the field length in the XML Schema would make a difference. I may try that next. -
Whilst executing scripts to create tables, indexes, users for Oracle 8.1.7, i get an error that index size cannot exceed 1578 in table web_app_url. Sees ora-01450.
What does ora-01450 mean? Am i creating an index greater than a certain predetermined limit?
any info is appreciated, thanks.Hello,
For this example we'll need user with default tablespace with block size 8 kB and another tablespace with block size 2 kB.
This is what happen:
-- default tablespace is created with block size 8 kB and table wil be created in this tablespace
CREATE TABLE BATCH_JOB_INSTANCE1 (
JOB_INSTANCE_ID NUMBER(38) PRIMARY KEY ,
VERSION NUMBER(38),
JOB_NAME VARCHAR(100) NOT NULL ,
JOB_KEY VARCHAR(2500)
-- in our case, table was filled with data, important is this:
select max(length(job_name)), max(length(job_key)) from batch_job_instance
MAX(LENGTH(JOB_NAME)) MAX(LENGTH(JOB_KEY))
21 52
-- as we can see, index will be not wide ...
-- now create index ...
-- index will be also created in 8 kB tablespace
CREATE INDEX IDX_BATCH_JOB_INST$JNAMEKEY1 ON BATCH_JOB_INSTANCE1 (JOB_NAME, JOB_KEY);
-- we'll try rebuild index to tablespace with 2 kB and Oracle is OK with that ...
alter index IDX_BATCH_JOB_INST$JNAMEKEY1 rebuild tablespace index2kB;
-- it's interesting, because index length is 2500 + 100 which is obviously more than 1478
-- let's continue ...
-- some cleanup
drop INDEX IDX_BATCH_JOB_INST$JNAMEKEY1;
-- now we try create same index but this time we'll specify tablespace name
CREATE INDEX IDX_BATCH_JOB_INST$JNAMEKEY1 ON BATCH_JOB_INSTANCE1 (JOB_NAME, JOB_KEY) TABLESPACE index2kB;
... and here we go ...
ORA-01450: maximum key length (1478) exceeded
Marek -
Hi there
When trying to install OBIEE I get an error saying that "maxium key length exceeded". It gives out the error ORA-01450. The funny part is that I have installed a couple of development environments now, without any problems - and now suddenly this? I have used the same Oracle Instance, and had success with two different RCU installs, and then suddenly no more...
Any ideas?
Regards JacobJacob,
I wonder if you have ran the RCU multiple times on the same machine to create several schemas for OBIEE (BIPLATFORM / MDS).
Either way the error message ORA-01450 mainly has to do with the Database Block Size.
See these links for reference reading:
http://www.dba-oracle.com/t_ora_01450_maximum_key_length_exceeded.htm
http://www.dbasupport.com/forums/archive/index.php/t-23148.html
You will most likely need to increase your DB Block Size in order to fix this issue. Here is a link with great explanation and some PL/SQL commands on how to increase the size, [http://www.oradbpedia.com/wiki/Increase_the_Database_Block_Size|http://www.oradbpedia.com/wiki/Increase_the_Database_Block_Size] . Try that and then re-run the RCU.
Depending on which value you have in the max key length message you should go to the next block size.
ORA-01450 maximum key length (758) exceeded -> (2K Block)
ORA-01450 maximum key length (1578) exceeded -> (4K block)
ORA-01450 maximum key length (3218) exceeded -> (8K Block)
ORA-01450 maximum key length (6498) exceeded -> (16K Block)
Cheers,
Christian -
Folks,
Hello. I have installed PeopleTools 8.53 with Oracle Linux 5.10 successfully. The entire PeopleTools runs correctly in browser at the beginning.
After I set up HCM and Campus Solution 9.0 Database Instance named HRCS90 in Linux successfully, PeopleTools 8.53 Database Instance PT853 cannot be mounted. Its error message is below:
SQL> startup
ORACLE instance started.
Total System Global Area 538677248 bytes
Fixed Size 2146024 bytes
Variable Size 528482584 bytes
Database Buffers 4194304 bytes
Redo Buffers 3854336 bytes
ORA-00059: maximum number of DB_FILES exceeded
In the file /home/user/OracleDB_Home/dbs/initPT853.ora, its parameter db_files has 3 values: small 400, medium 1021 and large 1500. The initial value is 1021 and it works correctly at the beginning. But after set up another instance HRCS90, the above error message comes up and instance PT853 cannot mounted. I change the value of db_files from 1021 to 1500 in the file initPT853.ora and restart OS Linux. But get the same error as below:
SQL> startup
ORACLE instance started.
Total System Global Area 538677248 bytes
Fixed Size 2146024 bytes
Variable Size 528482584 bytes
Database Buffers 4194304 bytes
Redo Buffers 3854336 bytes
ORA-00059: maximum number of DB_FILES exceeded
In the file /home/user/OracleDB_Home/dbs/initHRCS90.ora, its parameter db_files has 3 values: small 80, medium 400 and large 1500. I use db_files=400 and it works correctly. I start up instance HRCS90 right after the above error message as below:
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[user@userlinux bin]$ export ORACLE_SID=HRCS90
[user@userlinux bin]$ ./sqlplus / as sysdba
SQL*Plus: Release 11.1.0.6.0 - Production on Sat Nov 23 12:40:02 2013
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 538677248 bytes
Fixed Size 2146024 bytes
Variable Size 528482584 bytes
Database Buffers 4194304 bytes
Redo Buffers 3854336 bytes
Database mounted.
Database opened.
SQL> select * from psdbowner;
DBNAME OWNERID
HRCS90 MYNAME
SQL>
As we see above, the instance HRCS90 works corretly and PT853 cannot start up. The parameter DB_FILES of the file initPT853.ora has an issue.
My question is:
Because 1021 and 1500 are not enough to startup instance PT853, what value should be used for DB_FILES of the file initPT853.ora ?
Thanks.user8860348 wrote:
Folks,
Hello. I have installed PeopleTools 8.53 with Oracle Linux 5.10 successfully. The entire PeopleTools runs correctly in browser at the beginning.
After I set up HCM and Campus Solution 9.0 Database Instance named HRCS90 in Linux successfully, PeopleTools 8.53 Database Instance PT853 cannot be mounted....
I'm sorry, but I don't understand what does "Instance" mean here.
>In the file /home/user/OracleDB_Home/dbs/initPT853.ora, its parameter db_files has 3 values: small 400, medium 1021 and large 1500.
Are you not using a spfile ? Does the file contain really the 3 values ? What is the last ? Have you checked the value in the database side "show parameter db_files" ?
>But after set up another instance HRCS90, the above error message comes up and instance PT853 cannot mounted
Again, I have no idea what it means.
>In the file /home/user/OracleDB_Home/dbs/initHRCS90.ora, its parameter db_files has 3 values: small 80, medium 400 and large 1500. I use db_files=400 and it works correctly.
Again, 3 values ? What is the last ? Have you checked the value in the database side "show parameter db_files" ?
>As we see above, the instance HRCS90 works corretly and PT853 cannot start up. The parameter DB_FILES of the file initPT853.ora has an issue.
Again, I don't understand what are HRCS90 and PT853 exactly. Cannot help.
>Because 1021 and 1500 are not enough to startup instance PT853, what value should be used for DB_FILES of the file initPT853.ora ?
I'm sure, you don't have an issue with this parameter, 1500 files in the database is quite huge number. I built a demo recently, the default value 1021 was ok for me. You should have done something wrong somewhere.
Nicolas. -
Hi,
What is meant when someone says that your primary key length is too long??? This error I keep getting is really annoying me and I want to understand why it does this. Thanks everyoneIs this someone the database, one of your pals at the office, or your DBA?
If the someone is the database, what is the Oracle error number you see? Could it be ORA-01450? If the error message is ORA-01450, then you are trying to create a key with a length that is too long for the server software. I think the error message will tell you what the maximum key length is for your Oracle software version / operating system.
If it's one of your pals at the office, find some polite way to tell him to go suck an egg.
If it's your DBA, then listen to your DBA because DBAs know everything. -
Dynamic Configuration key length
I am using dynamic configuration to set certain JMS properties but it appears that the maximum key length is 20 characters.
Has anyone experienced this problem. Is this a bug?
Thanks
Here is my code
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "com_inforecord_messageProcessor");
conf.put(key1, "SoapMessage");Yes, is possible.
Take a look here:
http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=95093307
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/00a7ba12-e7cd-2b10-d589-e52b11346f77 -
ORA-00018 maximum number of session
Hello:
We have a strange problem with a sql statement that when is invoked inside a php or asp program generates the following error:
ORA-00018 maximum number of session
We are using Oracle 9i installed over Red Hat with IIS 5.0. This query works fine in sqlplus. The query is:
select * from vnoticias_p WHERE contains(titulo, '" . $nom . "') > 0
titulo is a context type index formed with two concatenated fields.
The problem had caused serious problems for us, because hangs our server every time the script is being executed.
We ran this script only with one user connected, and we don´t understand how this query generates too many sessions?
Appreciate your help
ThanksThanks for update.
It is supposed that PROCESSES is the default value during installation. I don't know what is the default PROCESSES value of Oracle 11g in Solaris 10. Can you tell me so that I can correct SESSIONS?
During Oracle 11g installation on Solaris 10, why did I get the following errors?
ORA-12801: error signaled in parallel query server P072
ORA-00018: maximum number of sessions exceeded
ORA-06512: at "SYS.UTL_RECOMP", line 629
ORA-06512: at "SYS.UTL_RECOMP", line 671
ORA-06512: at line 1
What is the best method to solve the above problem for Oracle 11g installation?
SPFILE can not be modified manually. "ALTER SYSTEM " is one way. When I create another new Oracle instance, new Oralce instance uses the default PREOCESSES value or new PROCESSES value which I changed by "alter system"?
Thanks,
Jerry
Maybe you are looking for
-
View colleagues' exchange calendar in iCal?
Hi! I can see my own Exchange calendar just fine with iCal 4 from the corporate Exchange server. However, colleagues have also shared their Exchange calendars with me - which I can see just fine on Webmail / Exchange 2007, but I would also like to v
-
How to add an item object as a child for a specified parent node in AdvancedDataGrid in Flex?
Hi all, This is the code, to add a object as a child into a specified parent node in AdvancedDataGrid in flex. <?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplet
-
Voltage requirement for late 2008 17" MacBook Pro
I bought a used 17" MacBook Pro - vintage late 2008 and have been having power issues with it. Screen flashing, system crash. Streaming video online, system crash. Took the battery out and held down the power button for about 30 seconds to dischar
-
What happened to all the images in the Organizer?
I posted a similar question in the Photoshop Elements forum and got no answer that solved the problem. The reason I'm now posting it here is that I suspect copying the lessons from the Premiere Elements 11 Classroom in a Book may have caused the prob
-
Converting Multiple GL accounts to cost elements
Hi, Is there any transaction where I can convert the multiple GL accounts to Cost Element Active. Thanks and Regards Madhu Vutukuri