Field in data file exceeds maximum length - CTL file error
Hi,
I am loading data in new system using CTL file. But I am getting error as 'Field in data file exceeds maximum length' for few records, other records are processed successfully. I have checked the length of the error record in the extract file, it is less than the length in the target table, VARCHAR2 (2000 Byte). Below is the example of error data,
Hi Rebecca~I have just spoken to our finance department and they have agreed that the ABCs payments made can be allocated to the overdue invoices, can you send any future invoices direct to me so that I can get them paid on time.~Hope this is ok ~Thanks~Terry~
Is this error caused because of the special characters in the string?
Below is the ctl file I am using,
OPTIONS (SKIP=2)
LOAD DATA
CHARACTERSET WE8ISO8859P1
INFILE '$FILE'
APPEND
INTO TABLE "XXDM_DM_17_ONACCOUNT_REC_SRC"
WHEN (1)!= 'FOOTER='
FIELDS TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS (
<Column_name>,
<Column_name>,
COMMENTS,
<Column_name>,
<Column_name>
Thanks in advance,
Aditya
Hi,
I suspect this is because of the built in default length of character datatypes in sqldr - it defaults to char(255) taking no notice of what the actual table definition is.
Try adding CHAR(2000), to your controlfile so you end up with something like this:
OPTIONS (SKIP=2)
LOAD DATA
CHARACTERSET WE8ISO8859P1
INFILE '$FILE'
APPEND
INTO TABLE "XXDM_DM_17_ONACCOUNT_REC_SRC"
WHEN (1)!= 'FOOTER='
FIELDS TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS (
<Column_name>,
<Column_name>,
COMMENTS CHAR(2000),
<Column_name>,
<Column_name>
Cheers,
Harry
Similar Messages
-
On load, getting error: Field in data file exceeds maximum length
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Solaris: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
I'm trying to load a table, small in size (110 rows, 6 columns). One of the columns, called NOTES is erroring when I run the load. It is saying that the column size exceeds max limit. As you can see here, the table column is set to 4000 Bytes)
CREATE TABLE NRIS.NRN_REPORT_NOTES
NOTES_CN VARCHAR2(40 BYTE) DEFAULT sys_guid() NOT NULL,
REPORT_GROUP VARCHAR2(100 BYTE) NOT NULL,
AREACODE VARCHAR2(50 BYTE) NOT NULL,
ROUND NUMBER(3) NOT NULL,
NOTES VARCHAR2(4000 BYTE),
LAST_UPDATE TIMESTAMP(6) WITH TIME ZONE DEFAULT systimestamp NOT NULL
TABLESPACE USERS
RESULT_CACHE (MODE DEFAULT)
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 80K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;
I did a little investigating, and it doesn't add up.
when i run
select max(lengthb(notes)) from NRIS.NRN_REPORT_NOTES
I get a return of
643
That tells me that the largest size instance of that column is only 643 bytes. But EVERY insert is failing.
Here is the loader file header, and first couple of inserts:
LOAD DATA
INFILE *
BADFILE './NRIS.NRN_REPORT_NOTES.BAD'
DISCARDFILE './NRIS.NRN_REPORT_NOTES.DSC'
APPEND INTO TABLE NRIS.NRN_REPORT_NOTES
Fields terminated by ";" Optionally enclosed by '|'
NOTES_CN,
REPORT_GROUP,
AREACODE,
ROUND NULLIF (ROUND="NULL"),
NOTES,
LAST_UPDATE TIMESTAMP WITH TIME ZONE "MM/DD/YYYY HH24:MI:SS.FF9 TZR" NULLIF (LAST_UPDATE="NULL")
BEGINDATA
|E2ACF256F01F46A7E0440003BA0F14C2|;|DEMOGRAPHICS|;|A01003|;3;|Demographic results show that 46 percent of visits are made by females. Among racial and ethnic minorities, the most commonly encountered are Native American (4%) and Hispanic / Latino (2%). The age distribution shows that the Bitterroot has a relatively small proportion of children under age 16 (14%) in the visiting population. People over the age of 60 account for about 22% of visits. Most of the visitation is from the local area. More than 85% of visits come from people who live within 50 miles.|;07/29/2013 16:09:27.000000000 -06:00
|E2ACF256F02046A7E0440003BA0F14C2|;|VISIT DESCRIPTION|;|A01003|;3;|Most visits to the Bitterroot are fairly short. Over half of the visits last less than 3 hours. The median length of visit to overnight sites is about 43 hours, or about 2 days. The average Wilderness visit lasts only about 6 hours, although more than half of those visits are shorter than 3 hours long. Most visits come from people who are fairly frequent visitors. Over thirty percent are made by people who visit between 40 and 100 times per year. Another 8 percent of visits are from people who report visiting more than 100 times per year.|;07/29/2013 16:09:27.000000000 -06:00
|E2ACF256F02146A7E0440003BA0F14C2|;|ACTIVITIES|;|A01003|;3;|The most frequently reported primary activity is hiking/walking (42%), followed by downhill skiing (12%), and hunting (8%). Over half of the visits report participating in relaxing and viewing scenery.|;07/29/2013 16:09:27.000000000 -06:00
Here is the full beginning of the loader log, ending after the first row return. (They ALL say the same error)
SQL*Loader: Release 10.2.0.4.0 - Production on Thu Aug 22 12:09:07 2013
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Control File: NRIS.NRN_REPORT_NOTES.ctl
Data File: NRIS.NRN_REPORT_NOTES.ctl
Bad File: ./NRIS.NRN_REPORT_NOTES.BAD
Discard File: ./NRIS.NRN_REPORT_NOTES.DSC
(Allow all discards)
Number to load: ALL
Number to skip: 0
Errors allowed: 50
Bind array: 64 rows, maximum of 256000 bytes
Continuation: none specified
Path used: Conventional
Table NRIS.NRN_REPORT_NOTES, loaded from every logical record.
Insert option in effect for this table: APPEND
Column Name Position Len Term Encl Datatype
NOTES_CN FIRST * ; O(|) CHARACTER
REPORT_GROUP NEXT * ; O(|) CHARACTER
AREACODE NEXT * ; O(|) CHARACTER
ROUND NEXT * ; O(|) CHARACTER
NULL if ROUND = 0X4e554c4c(character 'NULL')
NOTES NEXT * ; O(|) CHARACTER
LAST_UPDATE NEXT * ; O(|) DATETIME MM/DD/YYYY HH24:MI:SS.FF9 TZR
NULL if LAST_UPDATE = 0X4e554c4c(character 'NULL')
Record 1: Rejected - Error on table NRIS.NRN_REPORT_NOTES, column NOTES.
Field in data file exceeds maximum length...
I am not seeing why this would be failing.HI,
the problem is delimited data defaults to char(255)..... Very helpful I know.....
what you need to two is tell sqlldr hat the data is longer than this.
so change notes to notes char(4000) in you control file and it should work.
cheers,
harry -
SQL Loader - Field in data file exceeds maximum length
Dear All,
I have a file which has more than 4000 characters in a field and I wish to load the data in a table with field length = 4000. but I receive error as
Field in data file exceeds maximum lengthThe below given are the scripts and ctl file
Table creation script:
CREATE TABLE "TEST_TAB"
"STR" VARCHAR2(4000 BYTE),
"STR2" VARCHAR2(4000 BYTE),
"STR3" VARCHAR2(4000 BYTE)
);Control file:
LOAD DATA
INFILE 'C:\table_export.txt'
APPEND INTO TABLE TEST_TAB
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS
( STR CHAR(4000) "SUBSTR(:STR,1,4000)" ,
STR2 CHAR(4000) "SUBSTR(:STR2,1,4000)" ,
STR3 CHAR(4000) "SUBSTR(:STR3,1,4000)"
)Log:
SQL*Loader: Release 10.2.0.1.0 - Production on Mon Jul 26 16:06:25 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Control File: C:\TEST_TAB.CTL
Data File: C:\table_export.txt
Bad File: C:\TEST_TAB.BAD
Discard File: none specified
(Allow all discards)
Number to load: ALL
Number to skip: 0
Errors allowed: 0
Bind array: 64 rows, maximum of 256000 bytes
Continuation: none specified
Path used: Conventional
Table TEST_TAB, loaded from every logical record.
Insert option in effect for this table: APPEND
TRAILING NULLCOLS option in effect
Column Name Position Len Term Encl Datatype
STR FIRST 4000 | CHARACTER
SQL string for column : "SUBSTR(:STR,1,4000)"
STR2 NEXT 4000 | CHARACTER
SQL string for column : "SUBSTR(:STR2,1,4000)"
STR3 NEXT 4000 | CHARACTER
SQL string for column : "SUBSTR(:STR3,1,4000)"
value used for ROWS parameter changed from 64 to 21
Record 1: Rejected - Error on table TEST_TAB, column STR.
Field in data file exceeds maximum length
MAXIMUM ERROR COUNT EXCEEDED - Above statistics reflect partial run.
Table TEST_TAB:
0 Rows successfully loaded.
1 Row not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.
Space allocated for bind array: 252126 bytes(21 rows)
Read buffer bytes: 1048576
Total logical records skipped: 0
Total logical records read: 1
Total logical records rejected: 1
Total logical records discarded: 0
Run began on Mon Jul 26 16:06:25 2010
Run ended on Mon Jul 26 16:06:25 2010
Elapsed time was: 00:00:00.22
CPU time was: 00:00:00.15Please suggest a way to get it done.
Thanks for reading the post!
*009*Hi Toni,
Thanks for the reply.
Do you mean this?
CREATE TABLE "TEST"."TEST_TAB"
"STR" VARCHAR2(4001),
"STR2" VARCHAR2(4001),
"STR3" VARCHAR2(4001)
);However this does not work as the error would be:
Error at Command Line:8 Column:20
Error report:
SQL Error: ORA-00910: specified length too long for its datatype
00910. 00000 - "specified length too long for its datatype"
*Cause: for datatypes CHAR and RAW, the length specified was > 2000;
otherwise, the length specified was > 4000.
*Action: use a shorter length or switch to a datatype permitting a
longer length such as a VARCHAR2, LONG CHAR, or LONG RAW*009*
Edited by: 009 on Jul 28, 2010 6:15 AM -
Field in data file exceeds maximum length
Hi,
I am trying to run the following SQL*Loader control job on my Oracle 11gR2 . Running the SQL*Loader control job results in the ‘Field in data file exceeds maximum length’ error message. Below, I am listing the control file.Please Suggest. Thanks
It's giving me an error when I run SQL Loader on it,
Record 61: Rejected - Error on table RMS_TABLE, column GEOM.SDO_POINT.X.
Field in data file exceeds maximum length.
Here is my SQL Loader Control file,
LOAD DATA
INFILE *
TRUNCATE
CONTINUEIF NEXT(1:1) = '#'
INTO TABLE RMS_TABLE
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS (
Status NULLIF Status = BLANKS,
Score,
Match_type NULLIF Match_type = BLANKS,
Match_addr NULLIF Match_addr = BLANKS,
Side NULLIF Side = BLANKS,
User_fld NULLIF User_fld = BLANKS,
Addr_type NULLIF Addr_type = BLANKS,
ARC_Street NULLIF ARC_Street = BLANKS,
ARC_City NULLIF ARC_City = BLANKS,
ARC_State NULLIF ARC_State = BLANKS,
ARC_ZIP NULLIF ARC_ZIP = BLANKS,
INCIDENT_N NULLIF INCIDENT_N = BLANKS,
CDATE NULLIF CDATE = BLANKS,
CTIME NULLIF CTIME = BLANKS,
DISTRICT NULLIF DISTRICT = BLANKS,
LOCATION
NULLIF LOCATION = BLANKS,
MAPLOCATIO
NULLIF MAPLOCATIO = BLANKS,
LOCATION_T
NULLIF LOCATION_T = BLANKS,
DAYCODE
NULLIF DAYCODE = BLANKS,
CAUSE
NULLIF CAUSE = BLANKS,
GEOM COLUMN OBJECT
SDO_GTYPE INTEGER EXTERNAL,
SDO_POINT COLUMN OBJECT
(X FLOAT EXTERNAL,
Y FLOAT EXTERNAL)
CREATE TABLE RMS_TABLE (
Status VARCHAR2(1),
Score NUMBER,
Match_type VARCHAR2(2),
Match_addr VARCHAR2(120),
Side VARCHAR2(1),
User_fld VARCHAR2(120),
Addr_type VARCHAR2(20),
ARC_Street VARCHAR2(100),
ARC_City VARCHAR2(40),
ARC_State VARCHAR2(20),
ARC_ZIP VARCHAR2(10),
INCIDENT_N VARCHAR2(9),
CDATE VARCHAR2(10),
CTIME VARCHAR2(8),
DISTRICT VARCHAR2(4),
LOCATION VARCHAR2(128),
MAPLOCATIO VARCHAR2(100),
LOCATION_T VARCHAR2(42),
DAYCODE VARCHAR2(1),
CAUSE VARCHAR2(17),
GEOM MDSYS.SDO_GEOMETRY);Hi,
Looks like you have a problem with record 61 in your data file. Can you please post it in reply.
Regards
Ivan -
SDO_ORDINATES.X.Field in data file exceeds maximum length
Hi All,
While loading data in .SHP file into oracle spatial through SHP2SDO tool following error message appears:
Error message:
Record 54284: Rejected - Error on table GEO_PARCEL_CENTROID, column CENTROID_GEOM.SDO_ORDINATES.X.
Field in data file exceeds maximum length.
I read some where this is due to the SQL * Loader takes default column value to 255 characters. But there is confusion to me how to change the column size in control file because it is object data type. I am not sure this is correct or not.
The control file show as below:
LOAD DATA
INFILE geo_parcel_centroid.dat
TRUNCATE
CONTINUEIF NEXT(1:1) = '#'
INTO TABLE GEO_PARCEL_CENTROID
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS (
CENTROID_ID INTEGER EXTERNAL,
APN_NUMBER NULLIF APN_NUMBER = BLANKS,
PROPERTY_A NULLIF PROPERTY_A = BLANKS,
PROPERTY_C NULLIF PROPERTY_C = BLANKS,
OWNER_NAME NULLIF OWNER_NAME = BLANKS,
THOMAS_GRI NULLIF THOMAS_GRI = BLANKS,
MAIL_ADDRE NULLIF MAIL_ADDRE = BLANKS,
MAIL_CITY_ NULLIF MAIL_CITY_ = BLANKS,
MSLINK,
MAPID,
GMRotation,
CENTROID_GEOM COLUMN OBJECT
SDO_GTYPE INTEGER EXTERNAL,
SDO_ELEM_INFO VARRAY TERMINATED BY '|/'
(X FLOAT EXTERNAL),
SDO_ORDINATES VARRAY TERMINATED BY '|/'
(X FLOAT EXTERNAL)
Any help on this would appreciate.
Thanks,
[email protected]Hi,
Looks like you have a problem with record 61 in your data file. Can you please post it in reply.
Regards
Ivan -
Loader- Field in data file exceeds maximum length
Hi,
I am getting error while loading the data: However data size of this columns is less thatn 4000 and i defined column as : OBJ_ADDN_INFO CLOB
Please help
==================
Record 1: Rejected - Error on table APPS.CG_COMPARATIVE_MATRIX_TAB, column OBJ_ADDN_INFO.
Field in data file exceeds maximum length
LOAD DATA
infile *
REPLACE
INTO TABLE APPS.CG_COMPARATIVE_MATRIX_TAB
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS
( APPS_VERSION,
MODULE_SHORT_NAME,
CATEGORY,
MODULE,
OBJECT_NAME,
OBJECT_TYPE,
OBJECT_STATUS,
FUNCTION_NAME,
OBJ_ADDN_INFO
begindata
"12",DBI,Oracle Daily Business Intelligence,DBI for Depot Repair,ISC_DEPOT_RO_INIT,PROGRAM,Changed,"Initial Load - Update Depot Repair Order Base Summary","The ISC_DR_REPAIR_ORDERS_F fact has a new column FLOW_SATUS_ID. The FLOW_STATUS_ID contains a user-defined Status for a Repair Order. The STATUS Column will continue to store the Status, now called State of the Repair Order i.e. O , C , D , H . The Initial Load incorporates the additional column FLOW_STATUS_ID. The Incremental Load s merge statement is modified to collect or update the additional column FLOW_STATUS_ID also. ","DBI for Depot Repair"
"12",DBI,Oracle Daily Business Intelligence,DBI for Depot Repair,ISC_DEPOT_RO_INCR,PROGRAM,Changed,"Update Depot Repair Orders Base Summary","The ISC_DR_REPAIR_ORDERS_F fact has a new column FLOW_SATUS_ID. The FLOW_STATUS_ID contains a user-defined Status for a Repair Order. The STATUS Column will continue to store the Status, now called State of the Repair Order i.e. O , C , D , H . The Initial Load incorporates the additional column FLOW_STATUS_ID. The Incremental Load s merge statement is modified to collect or update the additional column FLOW_STATUS_ID also. ","DBI for Depot Repair"If you don't specify a data type for a data field in the SQL Loader control file, SQL Loader assumes the data type is CHAR(255). If you have data that is larger than that, then you can't rely on the default. Try changing the control file to
LOAD DATA
infile *
REPLACE
INTO TABLE APPS.CG_COMPARATIVE_MATRIX_TAB
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS
( APPS_VERSION,
MODULE_SHORT_NAME,
CATEGORY,
MODULE,
OBJECT_NAME,
OBJECT_TYPE,
OBJECT_STATUS,
FUNCTION_NAME,
OBJ_ADDN_INFO char(4000)
) -
SQL loader Field in data file exceeds maximum length for CLOB column
Hi all
I'm loading data from text file separated by TAB and i got the error below for some lines.
Event the column is CLOB data type is there a limitation of the size of a CLOB data type.
The error is:
Record 74: Rejected - Error on table _TEMP, column DEST.
Field in data file exceeds maximum length
I'm using SQL Loader and the database is oracle 11g r2 on linux Red hat 5
Here are the line causing the error fronm my data file and my table description for test:
create table TEMP
CODE VARCHAR2(100),
DESC VARCHAR2(500),
RATE FLOAT,
INCREASE VARCHAR2(20),
COUNTRY VARCHAR2(500),
DEST CLOB,
WEEK VARCHAR2(10),
IS_SAT VARCHAR2(50),
IS_SUN VARCHAR2(50)
CONTROL FILE:
LOAD DATA
INTO TABLE TEMP
APPEND
FIELDS TERMINATED BY X'9' TRAILING NULLCOLS
CODE,
DESC,
RATE,
INCREASE,
COUNTRY),
DEST,
WEEK,
IS_SAT,
IS_SUN
Data file:
BHS Mobile Bahamas - Mobile 0.1430 1 "242357, 242359, 242375, 242376, 242395, 242421, 242422, 242423, 242424, 242425, 242426, 242427, 242428, 242429, 242431, 242432, 242433, 242434, 242435, 242436, 242437, 242438, 242439, 242441, 242442, 242443, 242445, 242446, 242447, 242448, 242449, 242451, 242452, 242453, 242454, 242455, 242456, 242457, 242458, 242462, 242463, 242464, 242465, 242466, 242467, 242468, 24247, 242524, 242525, 242533, 242535, 242544, 242551, 242552, 242553, 242554, 242556, 242557, 242558, 242559, 242565, 242577, 242636, 242646, 242727"
BOL Mobile ENTEL Bolivia - Mobile Entel 0.0865 Increase 591 "67, 68, 71, 72, 73, 740, 7410, 7411, 7412, 7413, 7414, 7415, 7420, 7421, 7422, 7423, 7424, 7425, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7440, 7441, 7442, 7443, 7444, 7445, 7450, 7451, 7452, 7453, 7454, 7455, 746, 7470, 7471, 7472, 7475, 7476, 7477, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7490, 7491, 7492, 7493, 7494, 7495, 7496" Thank you.Hi
Thank you for youe help, I found the solution and here what i do in my Control file i added
char(40000) OPTIONALLY ENCLOSED BY '"' .
LOAD DATA
INTO TABLE TEMP
APPEND
FIELDS TERMINATED BY X'9' TRAILING NULLCOLS
CODE,
DESC,
RATE,
INCREASE,
COUNTRY,
DEST
char(40000) OPTIONALLY ENCLOSED BY '"',
WEEK,
IS_SAT,
IS_SUN
Thank you for your help. -
XML data value exceeds maximum length - ORA-30951
Hello,
I am receiving ORA-30951: Element or attribute at Xpath /dataroot/Respondent[1]/Response[3]/Value exceeds maximum length error during the XML load.
I have registered the schema and it works fine when the Value is less than 64k but fails if its greater. I tried changing the type of Value to type="xsd:base64Binary" xdb:maintainDOM="false" xdb:SQLName="LOB_DATA" xdb:SQLType="BLOB" but then I get ORA-00932: inconsistent datatypes error.
Can someone please let me know what I am doing wrong or is there a way I can load more than 64k length elements on 10g?
Thanks
Here is my schema.
var SCHEMAURL varchar2(256)
var XMLSCHEMA CLOB
set define off
begin
:SCHEMAURL := 'http://xmlns.example.com/Svy_Resp.xsd';
:XMLSCHEMA := '<?xml version="1.0"; encoding="utf-16"?>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0"; xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" xdb:storeVarrayAsTable="true">
<xsd:element name="dataroot" xdb:defaultTable="SVY_RESP_XML_SCHEMA" type="datarootType" />
<xsd:complexType name="datarootType" xdb:maintainDOM="false"
xdb:SQLType="Dataroot_T">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="Respondent" type="RespondentType" />
</xsd:sequence>
<xsd:attribute name="generated" type="xsd:dateTime" />
</xsd:complexType>
<xsd:complexType name="RespondentType" xdb:maintainDOM="false" xdb:SQLType="Respondent_Type">
<xsd:sequence>
<xsd:element name="RespondentID" type="xsd:int" />
<xsd:element name="KsID" type="xsd:int" />
<xsd:element name="email" type="xsd:string" />
<xsd:element name="SyID" type="xsd:int" />
<xsd:element name="KSuID" type="xsd:int" />
<xsd:element name="Completed" type="xsd:int" />
<xsd:element name="SubmitDateTime" type="xsd:dateTime" />
<xsd:element maxOccurs="unbounded" name="Response" type="ResponseType" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ResponseType" xdb:maintainDOM="false" xdb:SQLType="Response_Type">
<xsd:sequence>
<xsd:element name="ResponseID" type="xsd:int" />
<xsd:element name="RespondentID" type="xsd:int" />
<xsd:element name="CID" type="xsd:int" />
<xsd:element name="AID" type="xsd:int" />
<xsd:element name="Value" type="xsd:string"/>
<xsd:element name="QID" type="xsd:int" />
<xsd:element name="SID" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>';
end;
/Thanks for the quick response. I am not able to modify the source file, but will it be possible to set the value to NULL if it exceeds the max length instead of failure?
Thanks -
SQL*Loader Error Field in data file exceeds maximum length", version 8.1.6
Hi All,
I am trying to load a data file into a database table using SQL loader. I
received the data in an data file but I saved it as a pipe delimited
file.
When I run the SQL Loader command no records are loaded - looking at the log
file I get the following error:
Rejected - Error on table FARESDATA, column FANOTESIN.
Then I tried with substr and doesnt seem to work for values greater than 4000 chars, it only works if the field value is below 4000 chars (say doing a substr for first 3000 chars).
see the code--------
LOAD DATA
INFILE 'p.dat'
APPEND INTO TABLE PROSPECTUS
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
Fanotesin char(4000) "substr(:fanotesin,1,4000)"
We get the error ORA-01461: can bind a LONG value only for insert into a LONG column when using substr for 4000 chars.
Please help!
Thanks,
Rajesh
nullI believe the problem here is that the ORACLE database regards anything > 4000chs as a CLOB (or LONG). 4000 is the maximum length of a varchar2 field in the database, although of course you can declare larger values in PL/SQL. (Since the incoming data is > 4000 chs it is regarded as a LONG and you cannot therefore use SUBSTR on it)
I think that you must either truncate your data before loading or load into a table with the offending field as a CLOB (or LONG)
and then use PL/SQL to recreate it in a table with a varchar2(4000) which is otherwise identical. (You can select from a LONG into a varchar2(32000) for example and then truncate before writing out to the new table). -
SQL Loader - data exceeds maximum length
I am having an issue with SQL Loader falsely reporting that a column is too long in a CSV upload file. The offending column, Notes, is defined in the staging table as VARCHAR2(1000). The text in the Notes column in the upload file for the record that is being rejected is only 237 characters long. I examined the raw data file with a hex editor and there are no special cahracters embedded in the column. The CSV upload was recreated but the false error remains.
Any ideas what to check? Any suggestion appreciated.
Here are the pertinent files.
Control File:LOAD DATA
INFILE 'Mfield_Upl.dat'
BADFILE 'Mfield_Upl.bad'
TRUNCATE
INTO TABLE Mfield_UPL_Staging
FIELDS TERMINATED BY ',' optionally enclosed by '"'
ControlNo CHAR,
PatientID CHAR,
CollectDate DATE "MM/DD/YYYY",
TestDate DATE "MM/DD/YYYY",
AnalyteDesc CHAR,
Results CHAR,
HiLoFlag CHAR,
LoRange CHAR,
HiRange CHAR,
UnitOfMeas CHAR,
Comments CHAR,
Notes CHAR,
ClinicalEvent CHAR,
OwnerLName CHAR,
OwnerFName CHAR,
PetName CHAR,
AssecNo CHAR,
SpecimenID CHAR
{code}
Staging Table:{code}
CREATE TABLE Mfield_UPL_Staging
ControlNo VARCHAR2(20),
PatientID VARCHAR2(9),
CollectDate DATE,
TestDate DATE,
AnalyteDesc VARCHAR2(100),
Results VARCHAR2(100),
HiLoFlag CHAR(10),
LoRange VARCHAR2(15),
HIRange VARCHAR2(15),
UnitOfMeas VARCHAR2(25),
Comments VARCHAR2(100),
Notes VARCHAR2(1000),
ClinicalEvent VARCHAR2(20),
OwnerLName VARCHAR(50),
OwnerFName VARCHAR(50),
PetName VARCHAR(50),
AssecNo NUMBER(10),
SpecimenID NUMBER(10)
{Code}
Error Log File:{code}
SQL*Loader: Release 9.2.0.1.0 - Production on Wed Aug 11 08:22:58 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Control File: Mfield_UPL_CSV.ctl
Data File: Mfield_UPL.dat
Bad File: Mfield_Upl.bad
Discard File: none specified
(Allow all discards)
Number to load: ALL
Number to skip: 0
Errors allowed: 50
Bind array: 64 rows, maximum of 256000 bytes
Continuation: none specified
Path used: Conventional
Table MFIELD_UPL_STAGING, loaded from every logical record.
Insert option in effect for this table: TRUNCATE
Column Name Position Len Term Encl Datatype
CONTROLNO FIRST * , O(") CHARACTER
PATIENTID NEXT * , O(") CHARACTER
COLLECTDATE NEXT * , O(") DATE MM/DD/YYYY
TESTDATE NEXT * , O(") DATE MM/DD/YYYY
ANALYTEDESC NEXT * , O(") CHARACTER
RESULTS NEXT * , O(") CHARACTER
HILOFLAG NEXT * , O(") CHARACTER
LORANGE NEXT * , O(") CHARACTER
HIRANGE NEXT * , O(") CHARACTER
UNITOFMEAS NEXT * , O(") CHARACTER
COMMENTS NEXT * , O(") CHARACTER
NOTES NEXT * , O(") CHARACTER
CLINICALEVENT NEXT * , O(") CHARACTER
OWNERLNAME NEXT * , O(") CHARACTER
OWNERFNAME NEXT * , O(") CHARACTER
PETNAME NEXT * , O(") CHARACTER
ASSECNO NEXT * , O(") CHARACTER
SPECIMENID NEXT * , O(") CHARACTER
Record 1042: Rejected - Error on table MFIELD_UPL_STAGING, column NOTES.
Field in data file exceeds maximum length
Table MFIELD_UPL_STAGING:
3777 Rows successfully loaded.
1 Row not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.
{code}Try:
-- Etc ...
Notes CHAR(1000),
-- Etc ...SQL*Loader limits string buffer to 256 unless specified different.
:p -
ORA-30951: ...exceeds maximum length
Oracle Database 10g Release 10.2.0.1.0 - Production
I am new to XML and having a problem importing data using the XML Repository. I have annotated the schema and validated it using XML Spy. I am able to register the schema w/o errors. I am now working through the issues as they occur during the insertion of xml documents. Thes section below is giving me an error (bottom) that the data exceeds the maximum length. The "DATA" in the xml doc is a pdf file that has been converted to characters by some method. The size element has a data value of 5008. Seems to be too long for a varchar2. I tried RAW, CLOB, BLOB. I was pretty sure they wouldn't work and they didn't. I get an error that the xml/xdb types are incompatible.
How can I modify the schema to get this element to load?
Is it possible to tell oracle to ignore an element so I can eliminate those that are not critical? This would be very helpful.
Thanks!
Schema -
<xs:element name="NpdbReportList" minOccurs="0">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="NpdbReport" minOccurs="0">
<xs:complexType>
<xs:all minOccurs="0">
<xs:element name="DCN" minOccurs="0"/>
<xs:element name="DateReport" type="Date" minOccurs="0"/>
<xs:element name="ReportType" type="IdRef" minOccurs="0"/>
<xs:element ref="LOB" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="LOB" xdb:SQLType="LOB_T"xdb:maintainDOM="false">
<xs:all>
<xs:element name="Type" type="IdRef"/>
<xs:element name="Size"/>
<xs:element name="Data" xdb:maintainDOM="false" xdb:SQLName="LOB_DATA" xdb:SQLType="VARCHAR2"/>
</xs:all>
</xs:complexType>
ftp> mput *
mput Smyth_Steven_1386367.XML? y
227 Entering Passive Mode (127,0,0,1,83,221)
150 ASCII Data Connection
550- Error Response
ORA-30951: Element or attribute at Xpath /Provider/NpdbReportList/NpdbReport[1]/LOB/Data exceeds maximum length
550 End Error Response
28706 bytes sent in 0.014 seconds (1.9e+03 Kbytes/s)
ftp>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 -
The error is like : Variable length field exceeds maximum length
Hi All,
I am trying to load some signature ascii data from load file. so i wrote the code like below in my controal file to load that to database. For SIGN_IMAGE in oracle db it was mentioned as RAW(2000). The below is worked fine when i tried in window and oracle 8i environment.
SIG_TYPE POSITION(23:23) CHAR,
SIGN_IMAGE POSITION(24:1977) VARRAW(2000)
NULLIF SIGN_IMAGE=BLANKS,
SIGN_IMAGE1 POSITION(1978:3930) VARRAW(2000)
NULLIF SIGN_IMAGE1=BLANKS
But when i ported the same thing to solaris and oracle 10g environment. The below code is giving error when SQL Loder loading.
The error is like for column SIGN_IMAGE : Variable length field exceeds maximum length.
But here i am giving a lenght of 1954 only with including 2 bytes length of the string.
Could any one tell me what is exactly the problem? i am not able sort out the issue.
Thanks,
ShashiMaybe:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/ldr_field_list.htm#i1011032 -
Variable length field exceeds maximum length
Hi All,
I am trying to load some signature ascii data from load file. so i wrote the code like below in my controal file to load that to database. For SIGN_IMAGE in oracle db it was mentioned as RAW(2000). The below is worked fine when i tried in window and oracle 8i environment.
SIG_TYPE POSITION(23:23) CHAR,
SIGN_IMAGE POSITION(24:1977) VARRAW(2000)
NULLIF SIGN_IMAGE=BLANKS,
SIGN_IMAGE1 POSITION(1978:3930) VARRAW(2000)
NULLIF SIGN_IMAGE1=BLANKS
But when i ported the same thing to solaris and oracle 10g environment. The below code is giving error when SQL Loder loading.
The error is like : Variable length field exceeds maximum length.
But here i am giving a lenght of 1954 only with including 2 bytes length of the string.
Could any one tell me what is exactly the problem? i am not able sort out the issue.
Thanks,
ShashiHi,
I am getting the error in environment Oracle 10.2.0 and SunOS 5.10. This case was executed fine in Oracle 8.1 and windows xp professional. Please find the details below.
LOG file :
Column Name Position Len Term Encl Datatype
TRANS_NO 1:15 15 CHARACTER
TDR_ID 16:18 3 CHARACTER
DVCE_TYPE 19:20 2 CHARACTER
CAP_CD 21:22 2 CHARACTER
SIG_TYPE 23:23 1 CHARACTER
SIGN_IMAGE 24:1977 2002 VARRAW
NULL if SIGN_IMAGE = BLANKS
SIGN_IMAGE1 1978:3930 2002 VARRAW
NULL if SIGN_IMAGE1 = BLANKS
SIGN_IMAGE2 3931:5883 2002 VARRAW
NULL if SIGN_IMAGE2 = BLANKS
SIGN_IMAGE3 5884 2002 VARRAW
NULL if SIGN_IMAGE3 = BLANKS
value used for ROWS parameter changed from 64 to 31
Record 1: Rejected - Error on table SIGSCH.SIGNATURE, column SIGN_IMAGE.
Variable length field exceeds maximum length.
Record 2: Rejected - Error on table SIGSCH.SIGNATURE, column SIGN_IMAGE.
Variable length field exceeds maximum length.
Record 3: Rejected - Error on table SIGSCH.SIGNATURE, column SIGN_IMAGE.
Variable length field exceeds maximum length.
Record 4: Rejected - Error on table SIGSCH.SIGNATURE, column SIGN_IMAGE.
Variable length field exceeds maximum length.
Controal file :
LOAD DATA
INFILE 'sigc.sig'
BADFILE 'load_7.bad'
DISCARDFILE 'load_7.dis'
APPEND
INTO TABLE sigsch.signature
TRANS_NO POSITION(1:15) CHAR,
TDR_ID POSITION(16:18) INTEGER EXTERNAL,
DVCE_TYPE POSITION(19:20) CHAR,
CAP_CD POSITION(21:22) CHAR,
SIG_TYPE POSITION(23:23) CHAR,
SIGN_IMAGE POSITION(24:1977) VARRAW(2000)
NULLIF SIGN_IMAGE=BLANKS,
SIGN_IMAGE1 POSITION(1978:3930) VARRAW(2000)
NULLIF SIGN_IMAGE1=BLANKS,
SIGN_IMAGE2 POSITION(3931:5883) VARRAW(2000)
NULLIF SIGN_IMAGE2=BLANKS,
SIGN_IMAGE3 POSITION(5884) VARRAW(2000)
NULLIF SIGN_IMAGE3=BLANKS
DATA line
0001200000002480050600?ža4GW ' & ' & _" _! _" ^# ^# _" ^# _" ^# _! _" & ' & ' & !%_!5 & !% & !U & !% ' V X _R _! _Z _Q _" _"__1 _"_ ( _!__2_ (_ 0 & 'pa@NS _! _"_^3 _" ^# _! ^$ ^# _! ^$ _! _" _!paDC' ' P V _ P ^ & '_ ._ 0__*_ 0 ^# _" _! _" _! ^T X _Q! H PpaTI$_ (_ 0_ (_ 0__2_ (^_9 _"_^3 _" _! _R _Z P! H P! H & ^ W !% & & ' _! _" ^# _" _! _" _" _Q _" X P &pa]KA_ 0^ 8_ 0_ (__2_ 0_ ( X _! P P Z! H Q P Z R _!__2 _!^ 8__2_ (^ 8_ 6_ 0 ' Ppe"F; P ^ P & P ' & '_ 0_ 0__)_ 0 _"__) Z " ^S _Y! @!_Jpe3K/ _" _" _! _"__1 ^$ _! _" P _! ' ^ ' & & !% ' & & ' &_ ( _" X P P Y!J R!I!_J ^S R Y _"_ (__1^ 8_ 0^ 8_ 7^ 8_ ( & _" X PpeDF# & & _" _" _! _" ^# _" PpeDKW '_ 0 V P X R X P Q _"_ 0_ 0_ ( _" _! Z P Q Z!J Q R _! _" _"_ 0^ 8__1_ /_ 0_ 6_ ( & ' X V! H W! H! N! H! @ X P Z ! _" _! ^$ _! ^# _" ^# R ! ' & ' !$ !% !% !%_!5 !$ ' & W & & P X _" _R _! _Z _! _" _"__)_ 0__*_ 0 Ppi#J+ X_ (_ 0_ (^ @_ (__1__*__1 _R _Z _Q X P P! H X ' & V_ 7 &_ ( '_ 6 _" Ppi-KG_ 0_ 7__)_ 0_ /__1^ 8_ 0 R Z P Q Z Q Z _" _Q__2__) _"__2_ (^ @_ (_ 6 V ' ^ P P ' X V X P P X P! H P ^ P X W & '_ 6_ (__2_ (__1__2 _! _" _R _Q! H _Z P Ppi@H& _Q P X _" V X ' P_ 6_ (__2__)_ 0__2 _" _! _R _Q X P! H P _ & ' &_ . '_ 6 P XpiTN# &_ (^ 8__2^ 8_ 0__)__2_^3 _" _! ^# R " _! _R _!__2 _"_ 0_ (_ 6_ ._ 7_ 6_ / & & ' X P Q! H!J Ppi\KW _" _R X _Q _Z _Q _R _Zpm&O9_ . _"__2 _!_^3_^, ^#_^3 ^# ^# ^$ Qpm(JS 0_ ( _!_ 0 _"__) _" _" _! _Z P X P V _ &_ ._ 7_ 0 P Ppm1ID_ 0_ 0__* _!__2 _" Q " X _! P P X W X !% P & & W & _" _! _" _" _! ^# _" X V ' !] & V ' & _" _!__2 _" _! _" P & ' & V _ V _! @ ^! H!_B Xpa44V &_ 0____1____2 ^# ^# ^# R !!_J X P V _ !% & !% & '_ . &_ 7_ 6 Ppa<7Q_ 0_ ._ 0 _"__* _! _" ^# _" ]\ ^$ ^S ^# _Z _! W &paE3A _"_ 0 &_ 0_ ( _"_ 0__) _"_^3 _" ^S ^# _Z P!_I W !\ ' "S !%\!% !$ !%_!5 & '_ ( ^# _" ^# _! ^$ ^[ _! ^T ^# _YpaW7)_ 0_ ( _"__1 _" ^# _" ^# _! ^T X _Q! H P! H Xpe 7Q_ 0_ ( X _" _Q ^# _R ^# ^# ^\ ^# ^S _" _! _Z V !% !U !] !T !% !% !% &_ 0 _"__) ^$ _! _" ^# _" ^[ P _Y! @ X W ^ ' &_ ._ 7_ . '_ 6_ 0 & W P ^pe37/ ' _! _" _" _! ^# ^$ _! ^[ ^$ ^# _! ^$ _!pe-3A _" X _Q X! @ X P! H P ' X & V ' & ' !$ ' & _" _! ^$ _! ^# ^$ ^[ ^# ^# ^S _" _" V !% ^ W !\ W P ^ P X P _R _! _Z ^# _R ^# ^# _Z _! _RpeE/G X P X P W X P &_ 7_ (__1_ 0__*__1_^, _! ^# ^\ _Q _Z!_A!_J! H P! HpeU3A &_ 0_ 0__* _" _! _Z _Q _" ^S _" ^# _" _! _"__1 _"__2_ (_ 0pe]5D _" _! _" _" _! ^# ^\ ^# ^S _" ^# X & W & !% !%_"3_!-_ 6_!- &_ 7_ 0 & P V _ P X! @ X P X _Q ^$ _! _" _!__2_ ( _"_ 0_ (_ 0 Vpi&0> _! ^$ _Q _" _! ^$ _! _" & _ !$ ' !% !$ ' !U V ^ P! H P!_J X!_B Xpi65<_ ( _"_ 0 _! _"__2 _!__* _! ^$ ^# _Y _R _R X V ^ !U ' & &_ 7_ . '_ 0_ ( X VpiA1D_ 0^ 8 _"_ 0 _! ^$ _!_^+ ^$ ^[ ^S ^# ^[ _R _R_ 6 &_!5_!- !%_!5 !$ !% !U !% ^ W P X P _Y P _" _! _" ^#__2_ (__1_ (_ 0 ' &piF0> P X P! H P! H! H V __ . &_ 0_ (^ @_ (__2__*__1 _" _Q _Z _R! H!_I! H PpiT3! P &__2 _" _! _R _! _" _" ^# _! ' & ' !$ W & ' ^ V! H P! H Xpm$;! & _" _" _! ^# ^$ _! ^# _" _" ^#pm'3/ _"_ 0 _" _! _R _! _Z P _R! H! H P! N X V W & _Z _! ^$ ^S ^# ]] ^# ]% ]U_^3 _!__*^_:^_A^ 8^ 8^ ?^ 8^ @p -
Variable length field exceeds maximum length for VARRAW in SQLLOADER
Hi All,
I am trying to load some signature ascii data from load file. so i wrote the code like below in my controal file to load that to database. For SIGN_IMAGE in oracle db it was mentioned as RAW(2000). The below is worked fine when i tried in window and oracle 8i environment.
SIG_TYPE POSITION(23:23) CHAR,
SIGN_IMAGE POSITION(24:1977) VARRAW(2000)
NULLIF SIGN_IMAGE=BLANKS,
SIGN_IMAGE1 POSITION(1978:3930) VARRAW(2000)
NULLIF SIGN_IMAGE1=BLANKS
But when i ported the same thing to solaris and oracle 10g environment. The below code is giving error when SQL Loder loading.
The error is like : Variable length field exceeds maximum length.
But here i am giving a lenght of 1954 only with including 2 bytes length of the string.
Could any one tell me what is exactly the problem? i am not able sort out the issue.
Thanks,
ShashiPlease only post in a single forum. Thank you.
-
Variable length field exceeds maximum length for VARRAW
Hi All,
I am trying to load some signature ascii data from load file. so i wrote the code like below in my controal file to load that to database. For SIGN_IMAGE in oracle db it was mentioned as RAW(2000). The below is worked fine when i tried in window and oracle 8i environment.
SIG_TYPE POSITION(23:23) CHAR,
SIGN_IMAGE POSITION(24:1977) VARRAW(2000)
NULLIF SIGN_IMAGE=BLANKS,
SIGN_IMAGE1 POSITION(1978:3930) VARRAW(2000)
NULLIF SIGN_IMAGE1=BLANKS
But when i ported the same thing to solaris and oracle 10g environment. The below code is giving error when SQL Loder loading.
The error is like : Variable length field exceeds maximum length.
But here i am giving a lenght of 1954 only with including 2 bytes length of the string.
Could any one tell me what is exactly the problem? i am not able sort out the issue.
Thanks,
ShashiYou should probably move this question to the General Database Discussions. This forum is for Oracle Forms not SQL:*Loader.
Maybe you are looking for
-
Can't Get ATV to Stream from iTunes
OK, I can't get my ATV to stream from my iTunes. when I initially set up the ATV, it synced to my iTunes. I actually don't recall any option to sync or stream, but makbe I missed it. Anyway, the help says the following: "Playing your iTunes library o
-
hi all, iam using utl_file in my procedure.while executing the script its showing error as ERROR at line 1: ORA-29280: invalid directory path ORA-06512: at "SYS.UTL_FILE", line 33 ORA-06512: at "SYS.UTL_FILE", line 436 ORA-06512: at line 1 ORA-06512:
-
DVI or ADC????
Hi I'd like to buy an apple lcd display and i'm undecided what you think is better: - Cinema Display last generation (DVI connector) new for 599 euros or - Cinema Display lcd old (ADC connector) used for 370 euros? thank you very much ps i have to us
-
I've reinstalled the latest itunes but it will noit open I get an error message
I've recently had to reinstall itunes and now it won't open I get an error message
-
What happened with TD BACKGROUND in CS4 ?
We used to have the TD Background textfield value in the properties even in CS3 ... but now I need to use it and I no find the way unless I write it in HTML... where is that issue now ? Thanks in advance,