Solved

SQL LOADER issue with incomplete char data

Posted on 2014-04-30
5
561 Views
Last Modified: 2014-04-30
Hi experts, when I do an insert/append with sqlldr I see incomplete data in a CHAR column:
Here de control.ctl
Load DATA
CHARACTERSET WE8ISO8859P1
INFILE '60.dat' 
BADFILE '60.bad'
DISCARDFILE '60.dsc'
INTO TABLE TEMAS
Append
fields terminated by "|"
OPTIONALLY ENCLOSED BY '"'
trailing NULLCOLS
(ID           Integer "temas_id.nextval",              
 NOMBRE       CHAR(100), 
 INTERPRETE   CHAR NULLIF INTERPRETE=' ',
 TITULO       CHAR NULLIF TITULO=' ',
 ALBUM        CHAR NULLIF ALBUM=' ',
 FECHA        Date "DD-MM-YYYY HH24:Mi:SS",
 GENERO       CHAR NULLIF GENERO=' ',                
 TAMAÑO       CHAR NULLIF TAMAÑO=' ',
 DURACION     CHAR NULLIF DURACION=' ',                
 VELOCIDAD    CHAR NULLIF VELOCIDAD=' ',                
 COMENTARIOS  CHAR NULLIF COMENTARIOS=' ',               
 PATH         CHAR NULLIF PATH=' ')

Open in new window

here a portion of data:
|60 - uno.mp3  |||||||||||
|60 - dos.mp3  |||||||||||
|60 - tres.mp3 |||||||||||

Open in new window

After append, I hope to view:
select nombre from temas;

Open in new window

Result:
60 - uno.mp3
60 - dos.mp3
60 - tres.mp3

Open in new window

But I see:
- uno.mp3
- dos.mp3
- tres.mp3

Open in new window

The definition of the table is:
CREATE TABLE TEMAS
(
  ID           INTEGER,
  NOMBRE       VARCHAR2(100 BYTE),
  INTERPRETE   VARCHAR2(50 BYTE),
  TITULO       VARCHAR2(100 BYTE),
  ALBUM        VARCHAR2(50 BYTE),
  FECHA        DATE                             DEFAULT TO_DATE(SYSDATE,'DD/MM/YYYY HH24:MI:SS'),
  GENERO       VARCHAR2(30 BYTE),
  TAMAÑO       VARCHAR2(60 BYTE),
  DURACION     VARCHAR2(20 BYTE),
  VELOCIDAD    VARCHAR2(20 BYTE),
  COMENTARIOS  VARCHAR2(200 BYTE),
  PATH         VARCHAR2(200 BYTE)
)
TABLESPACE USERS;

Open in new window

What it is wrong?
Thank in advanced
Regards
0
Comment
Question by:carlino70
  • 2
  • 2
5 Comments
 
LVL 23

Expert Comment

by:David
Comment Utility
Would you please display the actual results rather than a representation?  At first glance, the VARCHAR to CHAR conversion should not be stripping out data from the column.

SELECT id, SUBSTR(nombre,1,30) nombre
FROM temas
WHERE ROWNUM < 5
/
0
 

Author Comment

by:carlino70
Comment Utility
Here the answer:

ID|NOMBRE
341|- donald - tiritando.mp3      
342|- los naufragos - de boliche e
343|- los naufragos - estoy hecho 
344|- palito ortega - bienvenido a

Open in new window

without SUBSTR, should be:
ID|NOMBRE
341|- donald - tiritando.mp3                       
342|- los naufragos - de boliche en boliche.mp3    
343|- los naufragos - estoy hecho un demonio.mp3   
344|- palito ortega - bienvenido amor.mp3          

Open in new window

note: I dont understand why appears the "|" between columns (?)
0
 
LVL 76

Accepted Solution

by:
slightwv (䄆 Netminder) earned 500 total points
Comment Utility
Try removing the data type for id.

Change:
...
trailing NULLCOLS
(ID           Integer "temas_id.nextval",  
...

To:
...
trailing NULLCOLS
(ID           "temas_id.nextval",  
...
0
 

Author Comment

by:carlino70
Comment Utility
Excellent!,

The inclusion of the data type INTEGER, somehow confused the sql loader.
Thanks
0
 
LVL 76

Expert Comment

by:slightwv (䄆 Netminder)
Comment Utility
Just a theory:
I think sqlloader was looking for an integer in the data before looking at the seq.nextval.

Without the data type, it took it as a literal value and ignored the data.
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Join & Write a Comment

Working with Network Access Control Lists in Oracle 11g (part 1) Part 2: http://www.e-e.com/A_9074.html So, you upgraded to a shiny new 11g database and all of a sudden every program that used UTL_MAIL, UTL_SMTP, UTL_TCP, UTL_HTTP or any oth…
Working with Network Access Control Lists in Oracle 11g (part 2) Part 1: http://www.e-e.com/A_8429.html Previously, I introduced the basics of network ACL's including how to create, delete and modify entries to allow and deny access.  For many…
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
This video shows how to Export data from an Oracle database using the Datapump Export Utility.  The corresponding Datapump Import utility is also discussed and demonstrated.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now