Sql*loader 11g - Error ORA-12899
Hi All,
I'm using Sqlload for inserti into a 11g db some csv file from db2.
My server is a Linux o.s. with Oracle 11.2.0.1.0 - 64bit.
I receive this error ORA-12899: Value too large for column on all file I try to load.
NLS for my db is:
SQL> select parameter, value from nls_database_parameters where parameter like '%CHARACTERSET%';
PARAMETER VALUE
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET UTF8
Have you any idea?
Thanks very much for help
Regards
Giovanni
In internet I found this short message:
“AL32UTF8 is a multi-byte characterset,that means some characters are stored in more than 1 character, that's true for these special characters.
If you have same table definitions in both databases you likely face error ORA-12899.
This metalink note discusses this problem, it's also applicable to sqlloader:
Import reports "ORA-12899: Value too large for column" when using BYTE semantic
Doc ID: Note:563893.1”
By metalink, I can see the Note linked to a one Oracle Internal Bug for Oracle 11g.....
I'm waiting you suggestion... thanks very much in advance.
Regards.
Giovanni
Similar Messages
-
Re: Sql*loader 11g - Error ORA-12899
My Bad file has first 2 records like this:
MEMB_NUMBER,ID_NUMBER,ASSIGNED_MEMB_NUMBER,ASSOC_AMT,ASSOC_TYPE,DATE_ADDED,DATE_MODIFIED,OPERATOR_NAME,USER_GROUP,LOCATION_ID,
0000000107,0000828633, ,1.5,J,22-FEB-02,12-JUN-02,MSUM080_MEMB_CONV,00,,
0000002301,0000800007, ,297.5,J,03-AUG-00,12-JUN-02,MSUM080_MEMB_CONV,00,,
My Log file says:
Record 1: Rejected - Error on table OWBREP.MEMB_ENTITY, column ID_NUMBER.
ORA-12899: value too large for column "OWBREP"."MEMB_ENTITY"."ID_NUMBER" (actual: 20, maximum: 10)
Record 2: Rejected - Error on table OWBREP.MEMB_ENTITY, column ASSOC_AMT.
ORA-01722: invalid number
Decription of target table:
memb_number
varchar2(10 byte)
y
id_number
varchar2(10 byte)
y
assigned_memb_number
varchar2(15 byte)
y
assoc_amt
number(14,2)
y
assoc_type
char(1 byte)
y
date_added
date
y
date_modified
date
y
operator_name
varchar2(32 byte)
y
user_group
varchar2(2 byte)
y
location_id
number
y
Can you please tell me why the sqlldr is throwing error?The data seems correct to me.Hi,
Now again I am facing problem..
I mean my log file throws error
"Record 2: Rejected - Error on table OWBREP.ADDRESS, column USER_GROUP.
ORA-12899: value too large for column "OWBREP"."ADDRESS"."USER_GROUP" (actual: 27, maximum: 2)"
and my record when I see in bad file is:
"0000810722,3,00000000,00000000,H,A,Y, , , , , ,1777 Hull Road, , , ,Mason,MI,48854, , , , ,12-MAR-02,N,0,,, ,00000000,0,FAC, , ,N,N, ,1777 Hull Road,Mason, MI 48854, , , , , , , ,12-MAR-02,10-FEB-05,FIX075_ADDR_VERSION_UPGRADE,00,,"
I have checked my control file and the table structure .They are same.
The problem is that I have an address field before this user_group column which has value like "Mason,MI,48854" .So sql loader is reading these as separate columns because of comma.That is why the order is getting messed up and I am getting this error.Can you suggest what should I do resolve this kind of error? -
SQL Loader and Error ORA-01847/ORA-01839
Hi,
While using the direct loading in SQL-LOADER when we get the ORA-01847/ORA-01839 all the other records are getting errorred out. It goes fine with the conventional loading.
Should I use some parameters or anything to make sure that all the other records are not rejected when we get the ORA-01847/ORA-01839 error while going with the DIRECT loading.
Thanks
JibinIn internet I found this short message:
“AL32UTF8 is a multi-byte characterset,that means some characters are stored in more than 1 character, that's true for these special characters.
If you have same table definitions in both databases you likely face error ORA-12899.
This metalink note discusses this problem, it's also applicable to sqlloader:
Import reports "ORA-12899: Value too large for column" when using BYTE semantic
Doc ID: Note:563893.1”
By metalink, I can see the Note linked to a one Oracle Internal Bug for Oracle 11g.....
I'm waiting you suggestion... thanks very much in advance.
Regards.
Giovanni -
Direct Path SQL Loader get error ORA-01555
Hi All,
11.2.0.1 DB
Has anyone here used sqlloader direct path option?
Is there special setting I need for the Undo TS?
I am testing my sqlloader direct path but I got error : ORA-01555: snapshot too old: rollback segment number 10 with name "_SYSSMU10$" too small
I am only testing 100 records and I shutdown the database. And I am only the one using it. :(
Does dropping the Undo TS and creating new one help resolve my issue?
Thanks a lot,
Kinz
Edited by: KinsaKaUy? on 07-Nov-2012 03:33I drop my UNDOTS1 and recreate it to resolve if there are framentation in the TS itself , but to no avail, the same error persist :(
Record 1: Rejected - Error on table EMPLOYEE.
ORA-00604: error occurred at recursive SQL level 1
ORA-01555: snapshot too old: rollback segment number with name "" too small
SYSTEM ONLINE
_SYSSMU87_2780657351$ ONLINE
_SYSSMU88_120427686$ ONLINE
_SYSSMU89_1588874193$ ONLINE
_SYSSMU90_2571046414$ ONLINE
_SYSSMU91_1803654754$ ONLINE
_SYSSMU92_2477693864$ ONLINE
_SYSSMU93_1908993412$ ONLINE
_SYSSMU94_985867735$ ONLINE
_SYSSMU95_4165893730$ ONLINE
_SYSSMU96_1502488804$ ONLINE
_SYSSMU97_3533816217$ ONLINE
_SYSSMU98_3954380786$ ONLINE
_SYSSMU99_1314687851$ ONLINE
_SYSSMU100_3542148152$ ONLINE
_SYSSMU101_1249002234$ ONLINE
_SYSSMU102_1520886654$ ONLINE
_SYSSMU103_2785416951$ ONLINE
_SYSSMU104_1530388055$ ONLINE
_SYSSMU105_1995830672$ ONLINE
_SYSSMU106_4584952$ ONLINE
_SYSSMU107_1177768351$ ONLINE
_SYSSMU108_3896986945$ ONLINE
_SYSSMU109_2576315174$ ONLINE
_SYSSMU110_2786589320$ ONLINE
_SYSSMU111_1195961439$ ONLINE
_SYSSMU112_2612035115$ ONLINE
_SYSSMU113_1697198479$ ONLINE
_SYSSMU114_3939726644$ ONLINE
_SYSSMU115_467875145$ ONLINE
_SYSSMU116_2826382876$ ONLINE
_SYSSMU117_3650068864$ ONLINE
_SYSSMU118_92260707$ ONLINE
_SYSSMU119_2322108460$ ONLINE
_SYSSMU120_2583709550$ ONLINE
_SYSSMU121_1279604730$ ONLINE
_SYSSMU122_2128414833$ ONLINE
_SYSSMU123_1365970622$ ONLINE
_SYSSMU124_1855929876$ ONLINE
_SYSSMU125_1511578664$ ONLINE
_SYSSMU126_3219352797$ ONLINE
_SYSSMU127_2412556110$ ONLINE
_SYSSMU128_2102547636$ ONLINE
_SYSSMU129_447164998$ ONLINE
_SYSSMU130_3851265156$ ONLINE
_SYSSMU131_3046352603$ ONLINE
_SYSSMU132_2987406815$ ONLINE
_SYSSMU133_983809304$ ONLINE
_SYSSMU134_928979873$ ONLINE
_SYSSMU135_3248183819$ ONLINE
_SYSSMU136_811112856$ ONLINE
_SYSSMU137_1958351427$ ONLINE
_SYSSMU138_2222543$ ONLINE
_SYSSMU139_3962620689$ ONLINE
_SYSSMU140_2711665463$ ONLINE
_SYSSMU141_3724825495$ ONLINE
_SYSSMU142_1818253355$ ONLINE
_SYSSMU143_1370485269$ ONLINE
_SYSSMU144_2442636386$ ONLINE
59 rows selected.
SQL>Is there something missing in my sqlloader parameter? but if I use "ordinary" path it will load successfully. But not with "direct" path :( Any ideas please -
SQL Error: ORA-12899: value too large for column
Hi,
I'm trying to understand the above error. It occurs when we are migrating data from one oracle database to another:
Error report:
SQL Error: ORA-12899: value too large for column "USER_XYZ"."TAB_XYZ"."COL_XYZ" (actual: 10, maximum: 8)
12899. 00000 - "value too large for column %s (actual: %s, maximum: %s)"
*Cause: An attempt was made to insert or update a column with a value
which is too wide for the width of the destination column.
The name of the column is given, along with the actual width
of the value, and the maximum allowed width of the column.
Note that widths are reported in characters if character length
semantics are in effect for the column, otherwise widths are
reported in bytes.
*Action: Examine the SQL statement for correctness. Check source
and destination column data types.
Either make the destination column wider, or use a subset
of the source column (i.e. use substring).
The source database runs - Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
The target database runs - Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
The source and target table are identical and the column definitions are exactly the same. The column we get the error on is of CHAR(8). To migrate the data we use either a dblink or oracle datapump, both result in the same error. The data in the column is a fixed length string of 8 characters.
To resolve the error the column "COL_XYZ" gets widened by:
alter table TAB_XYZ modify (COL_XYZ varchar2(10));
-alter table TAB_XYZ succeeded.
We now move the data from the source into the target table without problem and then run:
select max(length(COL_XYZ)) from TAB_XYZ;
-8
So the maximal string length for this column is 8 characters. To reduce the column width back to its original 8, we then run:
alter table TAB_XYZ modify (COL_XYZ varchar2(8));
-Error report:
SQL Error: ORA-01441: cannot decrease column length because some value is too big
01441. 00000 - "cannot decrease column length because some value is too big"
*Cause:
*Action:
So we leave the column width at 10, but the curious thing is - once we have the data in the target table, we can then truncate the same table at source (ie. get rid of all the data) and move the data back in the original table (with COL_XYZ set at CHAR(8)) - without any issue.
My guess the error has something to do with the storage on the target database, but I would like to understand why. If anybody has an idea or suggestion what to look for - much appreciated.
Cheers.843217 wrote:
Note that widths are reported in characters if character length
semantics are in effect for the column, otherwise widths are
reported in bytes.You are looking at character lengths vs byte lengths.
The data in the column is a fixed length string of 8 characters.
select max(length(COL_XYZ)) from TAB_XYZ;
-8
So the maximal string length for this column is 8 characters. To reduce the column width back to its original 8, we then run:
alter table TAB_XYZ modify (COL_XYZ varchar2(8));varchar2(8 byte) or varchar2(8 char)?
Use SQL Reference for datatype specification, length function, etc.
For more info, reference {forum:id=50} forum on the topic. And of course, the Globalization support guide. -
Replicat error: ORA-12899: value too large for column ...
Hi,
In our system Source and Target are on the same physical server and in the same Oracle instance. Just different schemes.
Tables on the target were created as 'create table ... as select * from ... source_table', so they have a similar structure. Table names are also similar.
I started replicat, it worked fine for several hours, but when I inserted Chinese symbols into the source table I got an error:
WARNING OGG-00869 Oracle GoldenGate Delivery for Oracle, OGGEX1.prm: OCI Error ORA-12899: value too large for column "MY_TARGET_SCHEMA"."TABLE1"."*FIRSTNAME*" (actual: 93, maximum: 40) (status = 12899), SQL <INSERT INTO "MY_TARGET_SCHEMA"."TABLE1" ("USERID","USERNAME","FIRSTNAME","LASTNAME",....>.
FIRSTNAME is Varchar2(40 char) field.
I suppose the problem probably is our database is running with NLS_LENGTH_SEMANTICS='CHAR'
I've double checked tables structure on the target - it's identical with the source.
I also tried to manually insert this record into the target table using 'insert into ... select * from ... ' statement - it works. The problem seems to be in the replicat.
How to fix this error?
Thanks in advance!
Oracle GoldenGate version: 11.1.1.1
Oracle Database version: 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
NLS_LANG: AMERICAN_AMERICA.AL32UTF8
NLS_LENGTH_SEMANTICS='CHAR'
Edited by: DeniK on Jun 20, 2012 11:49 PM
Edited by: DeniK on Jun 23, 2012 12:05 PM
Edited by: DeniK on Jun 25, 2012 1:55 PMI've created the definition files and compared them. They are absolutely identical, apart from source and target schema names:
Source definition file:
Definition for table MY_SOURCE_SCHEMA.TABLE1
Record length: 1632
Syskey: 0
Columns: 30
USERID 134 11 0 0 0 1 0 8 8 8 0 0 0 0 1 0 1 3
USERNAME 64 80 12 0 0 1 0 80 80 0 0 0 0 0 1 0 0 0
FIRSTNAME 64 160 98 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
LASTNAME 64 160 264 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
PASSWORD 64 160 430 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
TITLE 64 160 596 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
Target definition file:
Definition for table MY_TAEGET_SCHEMA.TABLE1
Record length: 1632
Syskey: 0
Columns: 30
USERID 134 11 0 0 0 1 0 8 8 8 0 0 0 0 1 0 1 3
USERNAME 64 80 12 0 0 1 0 80 80 0 0 0 0 0 1 0 0 0
FIRSTNAME 64 160 98 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
LASTNAME 64 160 264 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
PASSWORD 64 160 430 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
TITLE 64 160 596 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
Edited by: DeniK on Jun 25, 2012 1:56 PM
Edited by: DeniK on Jun 25, 2012 1:57 PM -
SQL*Loader-951: Error calling once/load initialization
Dear all,
11g on solaris 10.
Dear all,
When loading data using the below :
sqlldr username/password@db control=data.ctl direct=true errors=10000 readsize=1048576 log=databill.log
data loading successful.
but when am speeding up the same and trying to load as below :
sqlldr username/password@db1 control=databill.ctl direct=true errors=10000 Parallel=true bindsize= 5048576 multithreading=true log=databill.log
SQL*Loader-951: Error calling once/load initialization
ORA-26002: Table username.table has index defined upon it.
If I drop index, and run the same it works fine.. is there way I can speed up the insert (append) using the above
sqlldr username/password@db1 control=databill.ctl direct=true errors=10000 Parallel=true bindsize= 5048576 multithreading=true log=databill.log
control file :
UNRECOVERABLE
LOAD DATA
INFILE "databill.dat" "str X'0c'"
BADFILE "databill.bad"
DISCARDFILE "databill.dis"
APPEND
PRESERVE BLANKS
INTO TABLE username.databill_TEST
FIELDS TERMINATED BY X'07' TRAILING NULLCOLS
Thanks
KaiThanks ,
when using ,
sqlldr username/password@db1 control=databill.ctl direct=true errors=10000 Parallel=true readsize=1048576 bindsize= 5048576 multithreading=true log=databill.log
12048217 Rows successfully loaded.
0 Rows 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.
Date cache:
Max Size: 1000
Entries : 424
Hits : 81540372
Misses : 0
Bind array size not used in direct path.
Column array rows : 5000
Stream buffer bytes: 256000
Read buffer bytes: 1048576
Total logical records skipped: 0
Total logical records read: 12048217
Total logical records rejected: 0
Total logical records discarded: 0
Total stream buffers loaded by SQL*Loader main thread: 3767
Total stream buffers loaded by SQL*Loader load thread: 11300
Run began on Thu Dec 17 19:36:01 2009
Run ended on Thu Dec 17 19:42:16 2009
Elapsed time was: 00:06:14.25
CPU time was: 00:02:29.55when using
sqlldr username/password@db control=data.ctl direct=true errors=10000 readsize=1048576 log=databill.log
12048217 Rows successfully loaded.
0 Rows 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.
Date cache:
Max Size: 1000
Entries : 424
Hits : 81540372
Misses : 0
Bind array size not used in direct path.
Column array rows : 5000
Stream buffer bytes: 256000
Read buffer bytes: 1048576
Total logical records skipped: 0
Total logical records read: 12048217
Total logical records rejected: 0
Total logical records discarded: 0
Total stream buffers loaded by SQL*Loader main thread: 3767
Total stream buffers loaded by SQL*Loader load thread: 11300
Run began on Thu Dec 17 04:29:05 2009
Run ended on Thu Dec 17 04:37:04 2009
Elapsed time was: 00:07:58.95
CPU time was: 00:03:04.94How can I acheive maxium loading performance, what do I have to add to this :
sqlldr username/password@db1 control=databill.ctl direct=true errors=10000 Parallel=true readsize=1048576 bindsize= 5048576 multithreading=true log=databill.log
Please guide
Kai -
SQL*Loader-925: Error while parsing a cursor (via ocisq)
Receiving the following error message when trying to use SQLLoader (on NT) >>>
SQL*Loader-925: Error while parsing a cursor
(via ocisq)
ORA-00942: table or view does not exist
Trying to use the application for the first time, logon using userid for which sqlplus operates, and the table does exist under the user schema, as owner.
ctl and dat file are correct. Log file gives me no further detail of the errors.
Are there any configuration settings or something required for this app?
ThanksThanks Warren. I was concentrating more on the first line of the error.
You are right. The issue was of insufficient privileges. The table did not have all the necessary grants provided. -
I am getting error "ORA-12899: value too large for column".
I am getting error "ORA-12899: value too large for column" after upgrading to 10.2.0.4.0
Field is updating only through trigger with hard coded value.
This happens randomly not everytime.
select * from v$version
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
Table Structure
desc customer
Name Null? Type
CTRY_CODE NOT NULL CHAR(3 Byte)
CO_CODE NOT NULL CHAR(3 Byte)
CUST_NBR NOT NULL NUMBER(10)
CUST_NAME CHAR(40 Byte)
RECORD_STATUS CHAR(1 Byte)
Trigger on the table
CREATE OR REPLACE TRIGGER CUST_INSUPD
BEFORE INSERT OR UPDATE
ON CUSTOMER FOR EACH ROW
BEGIN
IF INSERTING THEN
:NEW.RECORD_STATUS := 'I';
ELSIF UPDATING THEN
:NEW.RECORD_STATUS := 'U';
END IF;
END;
ERROR at line 1:
ORA-01001: invalid cursor
ORA-06512: at "UPDATE_CUSTOMER", line 1320
ORA-12899: value too large for column "CUSTOMER"."RECORD_STATUS" (actual: 3,
maximum: 1)
ORA-06512: at line 1
Edited by: user4211491 on Nov 25, 2009 9:30 PM
Edited by: user4211491 on Nov 25, 2009 9:32 PMSQL> create table customer(
2 CTRY_CODE CHAR(3 Byte) not null,
3 CO_CODE CHAR(3 Byte) not null,
4 CUST_NBR NUMBER(10) not null,
5 CUST_NAME CHAR(40 Byte) ,
6 RECORD_STATUS CHAR(1 Byte)
7 );
Table created.
SQL> CREATE OR REPLACE TRIGGER CUST_INSUPD
2 BEFORE INSERT OR UPDATE
3 ON CUSTOMER FOR EACH ROW
4 BEGIN
5 IF INSERTING THEN
6 :NEW.RECORD_STATUS := 'I';
7 ELSIF UPDATING THEN
8 :NEW.RECORD_STATUS := 'U';
9 END IF;
10 END;
11 /
Trigger created.
SQL> insert into customer(CTRY_CODE,CO_CODE,CUST_NBR,CUST_NAME,RECORD_STATUS)
2 values('12','13','1','Mahesh Kaila','UPD');
values('12','13','1','Mahesh Kaila','UPD')
ERROR at line 2:
ORA-12899: value too large for column "HPVPPM"."CUSTOMER"."RECORD_STATUS"
(actual: 3, maximum: 1)
SQL> insert into customer(CTRY_CODE,CO_CODE,CUST_NBR,CUST_NAME)
2 values('12','13','1','Mahesh Kaila');
1 row created.
SQL> set linesize 200
SQL> select * from customer;
CTR CO_ CUST_NBR CUST_NAME R
12 13 1 Mahesh Kaila I
SQL> update customer set cust_name='tst';
1 row updated.
SQL> select * from customer;
CTR CO_ CUST_NBR CUST_NAME R
12 13 1 tst Urecheck your code once again..somewhere you are using record_status column for insertion or updation.
Ravi Kumar -
SQL*Loader-930: Error parsing insert statement for column
we upload data on daily basis in application throug apps user and these table are invloved
1. DEV_RA_INTERFACE_LINES_ALL(owner is a apps)
2.RA_INTERFACE_LINES_ALL(owner is a AR)
we do steps
1 delete record from DEV_RA_INTERFACE_LINES_ALL table
2 delete record from RA_INTERFACE_LINES_ALL table
3 load data using sql loader with apps user
4 insert in RA_INTERFACE_LINES_ALL table
we want to change user i mean these step do dataupload user not apps
we give the proper rights to dataupload like select,delete and insert rights on these table to dataupload user but when i going to load data throug sql loader we receive error
SQL*Loader-930: Error parsing insert statement for column APPS.DEV_RA_INTERFACE_
LINES_ALL.ORIG_SYSTEM_BILL_ADDRESS_ID.
ORA-00904: "F_ORIG_SYSTEM_BILL_ADDR_REF": invalid identifier
and if i insert data through apps then done.make sure that u have no speces left
between lines.
give the path of control file path correctly. -
SQL*Loader-925: Error while uldlfca: OCIStmtExecute (ptc_hp)
Hi my table loading is failing with the floowing error. But same table is loading daily without any problem. I tried again but failed with the same message.
SQL*Loader-2026: the load was aborted because SQL Loader cannot continue.
SQL*Loader-925: Error while uldlfca: OCIStmtExecute (ptc_hp)
ORA-03114: not connected to ORACLE
SQL*Loader-2026: the load was aborted because SQL Loader cannot continue.
SQL*Loader-925: Error while uldlgs: OCIStmtExecute (ptc_hp)
ORA-03114: not connected to ORACLE
SQL*Loader-925: Error while uldlgs: OCIStmtFetch (ptc_hp)
ORA-24338: statement handle not executed
How to solve this problem?
Thanks
Prashanthuser614414 wrote:
Hi BluShadow,
Nothing is changed recently. Loading is happening for other files at sametime, when this loading is failed. I have renamed and recreated the table, then it is working fine. similar problem occured today for some other table.
May i know, for any other reason it will happen?You've only supplied us with an error message and that's what the error message indicates.
If you want more help, you need to supply more details. -
SQL*Loader-929: Error parsing insert statement for table
Hi,
I get the following error with SQL*Loader:
Table MYTABLE loaded from every logical record.
Insert option in effect for this table: INSERT
Column Name Position Len Term Encl Datatype
IDE FIRST * ; CHARACTER
SQL string for column : "mysequence.NEXTVAL"
CSI_NBR 1:10 10 ; CHARACTER
POLICY_NBR 11:22 12 ; CHARACTER
CURRENCY_COD 23:25 3 ; CHARACTER
POLICY_STAT 26:27 2 ; CHARACTER
PRODUCT_COD 28:35 8 ; CHARACTER
END_DAT 44:53 10 ; CHARACTER
FISCAL_COD 83:83 1 ; CHARACTER
TOT_VAL 92:112 21 ; CHARACTER
SQL*Loader-929: Error parsing insert statement for table MYTABLE.
ORA-01031: insufficient privileges
I am positive that I can SELECT the sequence and INSERT into the table with the user invoking sql*loader.
Where does that "ORA-01031" come from?
Regards
...Options:
1) you are wrong about privileges OR
2) you have the privilege only when you connect via SQL*Plus (or whichever other tool you used to test the insert).
Is it possible that during your test you enabled the role which granted you the INSERT privilege - and that SQL*Loader doesn't do this?
Can you see the table in this list?
select *
from user_tab_privs_recd
where table_name='MY_TABLE'
and owner='table owner whoever';
select *
from user_role_privs;Any roles where DEFAULT_ROLE is not YES?
HTH
Regards Nigel -
SQL*Loader-929: Error
Hi
I am getting following error
SQL*Loader-929: Error parsing insert statement for table XXEEG.XXCONV_NOR_OKS_CON_HEADERS.
ORA-00947: not enough values
while running SQL*Loader. I have same number and types of columns in target table, data file and in control file even after I am getting this error. One thing I want to mention is that there are some fields in my data file which are NULL. But I think this should not create any problem.
Please If any one can give the answer then it will be very helpful for me.Hi,
I am generating control file using a shell script and that shell script runs SQL*LOADER using that generated control file. The following control file is generating.
Control file:
OPTIONS (SKIP=1)
load data
INFILE '/home/C9976680/xxconv_nordic_oks_header.csv'
TRUNCATE
into table xxeeg.XXCONV_NOR_OKS_CON_HEADERS
fields terminated by "," optionally enclosed by '"' trailing nullcols
ID "xxconv_nordic_contract_pkg.get_seq_val('HDR')",
BATCH_NUMBER "xxconv_nordic_contract_pkg.get_batch_no(to_date(:START_DATE,'MM/DD/YYYY'),to_date(:END_DATE,'MM/DD/YYYY'))",
CONTRACT_NUMBER,
CONTRACT_VERSION,
ORACLE_CONTRACT_NUMBER "xxconv_nordic_contract_pkg.get_orcl_kno(:CONTRACT_NUMBER,CONTRACT_VERSION))",
START_DATE "to_date(:START_DATE,'MM/DD/YYYY')",
END_DATE "to_date(:END_DATE,'MM/DD/YYYY')",
STATUS,
PARTY_ID,
BILL_TO_ID,
SHIP_TO_ID,
ACCOUNTING_RULE_TYPE,
INVOICE_RULE_TYPE,
PAYMENT_TERMS,
INT_SALESREP_NAME,
EXT_SALESREP_NAME,
RENEWAL_CONTACT_NAME,
ISR_ZONE,
ORBITAL_PROFILE_ID,
CCHOLDER_NAME,
CC_ZIP,
CUST_PO,
CC_NO,
CC_EXPIRY_DATE,
ERROR_MESSAGE,
INTERFACED_STATUS_FLAG CONSTANT "N",
ERROR_STACK
Log file:
SQL*Loader: Release 8.0.6.3.0 - Production on Wed Feb 13 02:01:11 2008
(c) Copyright 1999 Oracle Corporation. All rights reserved.
Control File: /opt/egapmdev/ebmdappl/xxeeg/bin/xxconv_nordic_oks_header.ctl
Data File: /home/C9976680/xxconv_nordic_oks_header.csv
Bad File: /opt/egapmdev/ebmdappl/xxeeg/bin/xxconv_nordic_oks_header.bad
Discard File: none specified
(Allow all discards)
Number to load: ALL
Number to skip: 1
Errors allowed: 50
Bind array: 64 rows, maximum of 65536 bytes
Continuation: none specified
Path used: Conventional
Table XXEEG.XXCONV_NOR_OKS_CON_HEADERS, loaded from every logical record.
Insert option in effect for this table: TRUNCATE
TRAILING NULLCOLS option in effect
Column Name Position Len Term Encl Datatype
ID FIRST * , O(") CHARACTER
BATCH_NUMBER NEXT * , O(") CHARACTER
CONTRACT_NUMBER NEXT * , O(") CHARACTER
CONTRACT_VERSION NEXT * , O(") CHARACTER
ORACLE_CONTRACT_NUMBER NEXT * , O(") CHARACTER
START_DATE NEXT * , O(") CHARACTER
END_DATE NEXT * , O(") CHARACTER
STATUS NEXT * , O(") CHARACTER
PARTY_ID NEXT * , O(") CHARACTER
BILL_TO_ID NEXT * , O(") CHARACTER
SHIP_TO_ID NEXT * , O(") CHARACTER
ACCOUNTING_RULE_TYPE NEXT * , O(") CHARACTER
INVOICE_RULE_TYPE NEXT * , O(") CHARACTER
PAYMENT_TERMS NEXT * , O(") CHARACTER
INT_SALESREP_NAME NEXT * , O(") CHARACTER
EXT_SALESREP_NAME NEXT * , O(") CHARACTER
RENEWAL_CONTACT_NAME NEXT * , O(") CHARACTER
ISR_ZONE NEXT * , O(") CHARACTER
ORBITAL_PROFILE_ID NEXT * , O(") CHARACTER
CCHOLDER_NAME NEXT * , O(") CHARACTER
CC_ZIP NEXT * , O(") CHARACTER
CUST_PO NEXT * , O(") CHARACTER
CC_NO NEXT * , O(") CHARACTER
CC_EXPIRY_DATE NEXT * , O(") CHARACTER
ERROR_MESSAGE NEXT * , O(") CHARACTER
ERROR_STACK NEXT * , O(") CHARACTER
INTERFACED_STATUS_FLAG CONSTANT 'N'
Column ID had SQL string
"xxconv_nordic_contract_pkg.get_seq_val('HDR')"
applied to it.
Column BATCH_NUMBER had SQL string
"xxconv_nordic_contract_pkg.get_batch_no(to_date(:START_DATE,'MM/DD/YYYY'),to_date(:END_DATE,'MM/DD/YYYY'))"
applied to it.
Column ORACLE_CONTRACT_NUMBER had SQL string
"xxconv_nordic_contract_pkg.get_orcl_kno(:CONTRACT_NUMBER),to_char(:CONTRACT_VERSION))"
applied to it.
Column START_DATE had SQL string
"to_date(:START_DATE,'MM/DD/YYYY')"
applied to it.
Column END_DATE had SQL string
"to_date(:END_DATE,'MM/DD/YYYY')"
applied to it.
SQL*Loader-929: Error parsing insert statement for table XXEEG.XXCONV_NOR_OKS_CON_HEADERS.
ORA-00947: not enough values
Table Structure:
CREATE TABLE XXEEG.XXCONV_NOR_OKS_CON_HEADERS
( ID NUMBER CONSTRAINT HEAD_ID_PK PRIMARY KEY,
BATCH_NUMBER NUMBER,
CONTRACT_NUMBER VARCHAR2(50),
CONTRACT_VERSION NUMBER,
ORACLE_CONTRACT_NUMBER VARCHAR2(300),
START_DATE varchar2(20),
END_DATE varchar2(20),
STATUS VARCHAR2(20),
PARTY_ID NUMBER,
BILL_TO_ID NUMBER,
SHIP_TO_ID NUMBER,
ACCOUNTING_RULE_TYPE VARCHAR2(50),
INVOICE_RULE_TYPE VARCHAR2(50),
PAYMENT_TERMS VARCHAR2(50),
INT_SALESREP_NAME VARCHAR2(50),
EXT_SALESREP_NAME VARCHAR2(50),
RENEWAL_CONTACT_NAME VARCHAR2(50),
ISR_ZONE VARCHAR2(50),
ORBITAL_PROFILE_ID VARCHAR2(50),
CCHOLDER_NAME VARCHAR2(50),
CC_ZIP NUMBER,
CUST_PO VARCHAR2(50),
CC_NO NUMBER,
CC_EXPIRY_DATE varchar2(20),
ERROR_MESSAGE VARCHAR2(1000),
INTERFACED_STATUS_FLAG VARCHAR2(1),
ERROR_STACK VARCHAR2(2000)
Functions used above:
FUNCTION get_batch_no(p_start_date DATE, p_end_date DATE) RETURN NUMBER IS
BEGIN
RETURN 1;
END get_batch_no;
FUNCTION get_orcl_kno(p_contract_number VARCHAR2, p_contract_version NUMBER) RETURN VARCHAR2 IS
BEGIN
RETURN 'M'||p_contract_number||'v'||p_contract_version;
END get_orcl_kno;
FUNCTION get_seq_val (p_seqtype VARCHAR2) RETURN NUMBER IS
v_seqno NUMBER;
BEGIN
IF UPPER(p_seqtype) = 'HDR' THEN
SELECT XXCONV_NOR_HDR_S.NEXTVAL
INTO v_seqno
FROM dual;
RETURN v_seqno;
END IF;
IF UPPER(p_seqtype) = 'LINE' THEN
SELECT XXCONV_NOR_LINE_S.NEXTVAL
INTO v_seqno
FROM dual;
RETURN v_seqno;
END IF;
IF UPPER(p_seqtype) = 'SUBLINE' THEN
SELECT XXCONV_NOR_SUBLINE_S.NEXTVAL
INTO v_seqno
FROM dual;
RETURN v_seqno;
END IF;
IF UPPER(p_seqtype) = 'BILL_SCH' THEN
SELECT XXCONV_NOR_BILL_SCH_S.NEXTVAL
INTO v_seqno
FROM dual;
RETURN v_seqno;
END IF;
IF UPPER(p_seqtype) = 'PMS' THEN
SELECT XXCONV_NOR_PMS_S.NEXTVAL
INTO v_seqno
FROM dual;
RETURN v_seqno;
END IF;
IF UPPER(p_seqtype) = 'TEST' THEN
SELECT XXCONV_NOR_WARRANTY_S.NEXTVAL
INTO v_seqno
FROM dual;
RETURN v_seqno;
END IF;
END get_seq_val;
----------------------------------- -
File_To_RT data truncation ODI error ORA-12899: value too large for colum
Hi,
Could you please provide me some idea so that I can truncate the source data grater than max length before inserting into target table.
Prtoblem details:-
For my scenario read data from source .txt file and insert the data into target table.suppose source file data length exceeds max col length of the target table.Then How will I truncate the data so that data migration will be successful and also can avoid the ODI error " ORA-12899: value too large for column".
Thanks
AnindyaBhabani wrote:
In which step you are getting this error ? If its loading step then try increasing the length for that column from datastore and use substr in the mapping expression.Hi Bhabani,
You are right.It is for Loading SrcSet0 Load data.I have increased the column length for target table data store
and then apply the substring function but it results the same.
If you wanted to say to increase the length for source file data store then please tell me which length ?Physical length or
logical length?
Thanks
Anindya -
Sql*loader-604 Error occurred on an attempt to commit
Hi,
Iam trying to insert data in to dept table using sqlloader.It worked fine for first 2 attempts but when iam trying it later its giving an error.
E:\ sqlldr userid=scott/tiger@test,control='E:\oracle\dept.ctl'
sql*loader-604 Error occurred on an attempt to commit
ora-03114: not connected to oracle
Regards,
Krithikaora-03114: not connected to oracle
Your DBA might have wriiten a procedure to Kill an Oracle session if idle for 15 mins or so or he might have killed the session for some maintenance purpose and that to forcefully . Try reconnectiing again
Maybe you are looking for
-
Ask the Expert: Integrating Cisco Identity Service Engine (ISE) 1.2 for BYOD
With Eric Yu and Todd Pula Welcome to the Cisco Support Community Ask the Expert conversation. This is an opportunity to learn and ask questions about integrating Cisco ISE 1.2 for BYOD with experts Eric Yu and Todd Pula. Cisco Bring Your Own Devic
-
When clicking on a link firefox opens to my home page but does not go to the link.
I've disabled all plugins and extensions then reset but still have the problem.
-
HP P7 1240 wakes up,not monitor
After going sleep for 8-10 min then wake up by mouse or keyboard the monitor keeps in sleep mode.Looks like no output to monitor.Restarting works the situation.It does that ramdonly,not all the time.
-
Getting Web Start to use JDK's javaw.exe, not JRE's
On Windows, I need a Web Started app (actually, my Glossitope desklet) to run with the JDK's javaw.exe, not the JRE's, because I use the Java Compiler API, which is more or less a no-op in the JRE. I've tried using the Java Control Panel to change th
-
Error creating new Open Directory domain
The wizard for creating a new Open Directory domain in Server.app on Mountain Lion responds with the following error message: "An error occurred while configuring My Server as a directory server. Please check your network configuration and try