Oracle Load Problem

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

xinhuang66
Participant
Posts: 161
Joined: Wed Aug 02, 2006 4:30 am

Oracle Load Problem

Post by xinhuang66 »

I got a problem when I try to load data file to oracle by datastage.

If the column length is more than 300, I always get an oracle errors say column lengh exceed maxium length.

And if I change the loading method to upsert, it is OK, I can even insert 4000 length column into oracle.

But when I changed it back to Load method, it alwasy doesn't work.

Anyone can help ? thanks
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

What is the Oracle DDL column length? Is the problem that you cannot load more than 300 characters into a varchar column or something else?
xinhuang66
Participant
Posts: 161
Joined: Wed Aug 02, 2006 4:30 am

Post by xinhuang66 »

Yes, I tried varchar and longVarchar in datastage.
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

Umm, I'm still not sure what you mean. What is your definition in Oracle for this column?
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

xinhuang66 wrote:varchar2(1000), is oracle column definition.
If that is the definition in your table, what is it in the job?
do you use the CIDN1 and CIDN2 columns somewhere in the job (i.e. do you have runtime column propagation issues)?
xinhuang66
Participant
Posts: 161
Joined: Wed Aug 02, 2006 4:30 am

Post by xinhuang66 »

oracle datatype varchar2(1000)

In datastage, I try varchar(1000), and longVarchar(1000), all failed
xinhuang66
Participant
Posts: 161
Joined: Wed Aug 02, 2006 4:30 am

Post by xinhuang66 »

Why there is no length specified in DS generated control file ? and How can I make DS generated a length specified column ??

Thanks
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

I have no clue, was just explaining the behaviour you are seeing. As Arnd asked, is this an RCP issue? :?
-craig

"You can never have too many knives" -- Logan Nine Fingers
xinhuang66
Participant
Posts: 161
Joined: Wed Aug 02, 2006 4:30 am

Post by xinhuang66 »

RCP was disabled in our project ?

Does it cause problems ?
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

RCP does not cause problems, just inappropriate use of it may cause them. If you shorten the length to 250 in your job, does the control file contain the explicit lengths?
xinhuang66
Participant
Posts: 161
Joined: Wed Aug 02, 2006 4:30 am

Post by xinhuang66 »

No, it doesn't have.
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

Sounds like there might be a bug when DataStage creates the load file and doesn't inherit the explicit column definitions into this file. You should take it up with your support provider.
xinhuang66
Participant
Posts: 161
Joined: Wed Aug 02, 2006 4:30 am

Post by xinhuang66 »

ArndW wrote:Sounds like there might be a bug when DataStage creates the load file and doesn't inherit the explicit column definitions into this file. You should take it up with your support provider. ...
thanks for your output.

I still couldn't make it work. I use upsert method at this moment. And I raised my questions to IBM guys. They did the test. And come back to me say that it works on their Oracle system.

I don't know whether I need to do some special configuration in Oracle. However, if I test a sqlldr control file (with column length) in my oracle, it works
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Then you need to work with them to ascertain what is different between your 'Oracle system' and theirs. First thing I'd wonder about would be the specific release of the Oracle client both are using.
-craig

"You can never have too many knives" -- Logan Nine Fingers
Yuan_Edward
Participant
Posts: 73
Joined: Tue May 10, 2005 6:21 pm
Location: Sydney

Post by Yuan_Edward »

Did you set the environment variable APT_ORACLE_LOAD_DELIMITED in your job? Also are there any double quotes in the input data?

What error did you get in the sqlldr log? Can you post the sqlldr log file?
xinhuang66 wrote:
ArndW wrote:Sounds like there might be a bug when DataStage creates the load file and doesn't inherit the explicit column definitions into this file. You should take it up with your support provider. ...
thanks for your output.

I still couldn't make it work. I use upsert method at this moment. And I raised my questions to IBM guys. They did the test. And come back to me say that it works on their Oracle system.

I don't know whether I need to do some special configuration in Oracle. However, if I test a sqlldr control file (with column length) in my oracle, it works
Edward Yuan
Post Reply