Reputation: 21
Need help debugging. My table structure is below :
RESPOND_BY_DATE TIMESTAMP(6) ,
DESCRIPTION VARCHAR2(300) ,
AXBCRULE NUMBER(4) NOT NULL,
SEGMENT VARCHAR2(100) ,
ASSIGN_UNIQUE_BALCON VARCHAR2(1) ,
BALCON_OFFER_TYPE VARCHAR2(3) ,
APR VARCHAR2(10) ,
FEE_YN VARCHAR2(1) ,
FEE_PERCENT VARCHAR2(10) ,
FEE_AMOUNT_MAX VARCHAR2(10) ,
BALCON_DURATION_TYPE VARCHAR2(7) ,
BALCON_DURATION VARCHAR2(3) ,
BALCON_CAP_AMOUNT VARCHAR2(10) ,
INTERIM_APR VARCHAR2(10) ,
INTERIM_DURATION_TYPE VARCHAR2(7) ,
INTERIM_DURATION NUMBER(3) ,
BALCON_ID NUMBER(7) ,
CHANNEL_ID VARCHAR2(7) NOT NULL ,
SUBCHANNEL_ID VARCHAR2(7) NOT NULL ,
PROGRAM_NAME VARCHAR2(45) NOT NULL,
DATE_INITIATED TIMESTAMP(6) NOT NULL,
ERROR_MESSAGE VARCHAR2(1024) ,
STATUS NUMBER(2) ,
USER_CODE VARCHAR2(10) ,
WARNING_MESSAGE VARCHAR2(1024) ,
BALCON_OFFER_SEQUENCE NUMBER(2) NOT NULL,
CAMPAIGN_TAG VARCHAR2(3)
It has total of 27fields and I used the below ctl file to load it:
OPTIONS (LOAD=1)
load data
infile *
replace into table test_table
(RESPOND_BY_DATE SYSDATE,
DESCRIPTION CONSTANT 'test',
AXBCRULE CONSTANT '011',
SEGMENT CONSTANT '12',
ASSIGN_UNIQUE_BALCON CONSTANT '1',
BALCON_OFFER_TYPE CONSTANT '1',
APR CONSTANT '12',
FEE_YN CONSTANT 'Y',
FEE_PERCENT CONSTANT '009',
FEE_AMOUNT_MAX CONSTANT '12',
BALCON_DURATION_TYPE CONSTANT '1',
BALCON_DURATION CONSTANT '12',
BALCON_CAP_AMOUNT CONSTANT '0123',
INTERIM_APR CONSTANT '1',
INTERIM_DURATION_TYPE CONSTANT 'N',
INTERIM_DURATION CONSTANT '1',
BALCON_ID CONSTANT '1',
CHANNEL_ID CONSTANT '1',
SUBCHANNEL_ID CONSTANT '1',
PROGRAM_NAME CONSTANT '1',
DATE_INITIATED SYSDATE,
ERROR_MESSAGE CONSTANT '1',
STATUS CONSTANT '1' ,
USER_CODE CONSTANT '1',
WARNING_MESSAGE CONSTANT '1',
BALCON_OFFER_SEQUENCE CONSTANT '1',
CAMPAIGN_TAG CONSTANT '1'
)
When I try to load this test data into the table, I am facing the below error :
Record 1: Rejected - Error on table "schema"."TEST_TABLE".
ORA-00947: not enough values
Kindly help me out. Thanks in advance.
Upvotes: 0
Views: 2310
Reputation: 10360
Change your control file entries for the timestamp columns to look like:
RESPOND_BY_DATE EXPRESSION "CAST(SYSDATE AS TIMESTAMP)"
A DATE and a TIMESTAMP are not the same datatypes. You just need to convert SYSDATE to a TIMESTAMP.
ORA-00947 is being raised when the process tries to put a SYSDATE into the TIMESTAMP. SYSDATE does not have the same fractional seconds component that the TIMESTAMP requires.
Upvotes: 2