problem in ODBC STAGE

Post questions here relative to DataStage Server Edition for such areas as Server job design, DS Basic, Routines, Job Sequences, etc.

Moderators: chulett, rschirm, roy

qmbs
Participant
Posts: 13
Joined: Mon Aug 29, 2005 12:47 am

problem in ODBC STAGE

Post by qmbs »

Hi,
i have a problem while using the odbc stage.My problem is,
I am using odbc as a source and target also an odbc.
when i load an emp table from source to target, in the target table the ename column and job colum no data is present insted of the data ???????? is available in the two colums columns.

pls help me.


regards
qmbs.
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

Hello qmbs,

first off, welcome to the forums.

The next time you post, please make sure to do it in the appropriate forum - this is the "testimonial" forum and this question doesn't belong here. I am sure that one of those with access rights will move it soon.

DataStage has no problem going from ODBC to ODBC, so your issues lie elsewhere. Begin at the source ODBC stage. If you are in the designer, can you do a "view Data" on it? If you run the job from the designer can you see the number of rows going down that link, or do the same thing in the monitor under the director?

Keep it simple at first, go from ODBC to a sequential file and make sure it run. Once that works, change the target to another database table.
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

It looks like you have a text-translation error with the ENAME field...

There are several methods of getting this error. Quickest is to look at the detail records in the DIRECTOR log file for the job run - I am sure that the insert/update statement is generating a database error through ODBC. You can also modify your job so that rejected records get written to a text file.
qmbs
Participant
Posts: 13
Joined: Mon Aug 29, 2005 12:47 am

Post by qmbs »

thank q arndw.


My another issue is while i load data from oci9stage to oci 9stage it give the following error message.

Attempting to Cleanup after ABORT raised in stage case4_oci_oci..Transformer_2
pls help me to resolve.

regards
qmbs
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

qmbs,

You have done something wrong in the Transformer_2 - most likely one of your derivations generates a runtime error. Perhaps doing a mathematical operation on a string value? What sort of constraints or derivations do you have in that transform?
qmbs
Participant
Posts: 13
Joined: Mon Aug 29, 2005 12:47 am

Post by qmbs »

arndw,

i am not using any derivations or constrains in the transformer stage.
i just load the sourceoci9 data to targetoci9 thats all.

and if i not use the transformer stage between the source and targetoci9 i am getting the following warning and the job gets aborted.


Attempting to Cleanup after ABORT raised in stage case4_oci_oci..Oracle_OCI_1.IDENT1
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

When you have the transformer, run the job to get an abort, then do a RESET in the Director and look at what log messages show up under "from previous run".
qmbs
Participant
Posts: 13
Joined: Mon Aug 29, 2005 12:47 am

Post by qmbs »

hi arndw,

i am getting the following message.

From previous run
DataStage Job 4 Phantom 1956
Program "JOB.368353998.DT.1375338332.TRANS1": Line 62, Exception raised in GCI subroutine:
Access violation.
Attempting to Cleanup after ABORT raised in stage case4_oci_oci..Transformer_8
Program "DSP.Close": Line 87, Exception raised in GCI subroutine:
Access violation.

regards
qmbs
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

qmbs,

hmmm, so what steps have you taken so far to find out what the cause might be?
qmbs
Participant
Posts: 13
Joined: Mon Aug 29, 2005 12:47 am

Post by qmbs »

arndw,
:(

still i am trying to find trhe possible cause.

regards
qmbs.
elavenil
Premium Member
Premium Member
Posts: 467
Joined: Thu Jan 31, 2002 10:20 pm
Location: Singapore

Post by elavenil »

Hi,

I think this error was caused due to the characters that were not able to identify the NLS settings that was defined in the job. '??' seems to me, as Arnd mentioned the defined NLS setting not able to convert the input characters in the source. Pls check your input to identify the invalid characters and set the right NLS settings or transform those characters then the job would work.

HTWH.

Regards
Saravanan
qmbs
Participant
Posts: 13
Joined: Mon Aug 29, 2005 12:47 am

Post by qmbs »

Hi saravanan ,
that issue was rsolve d.My another issue is while i am using the oci9 stage as a source and a target i am getting the following error message.


From previous run

DataStage Job 4 Phantom 1956
Program "JOB.368353998.DT.1375338332.TRANS1": Line 62, Exception raised in GCI subroutine:
Access violation.
Attempting to Cleanup after ABORT raised in stage case4_oci_oci..Transformer_8
Program "DSP.Close": Line 87, Exception raised in GCI subroutine:
Access violation.


regards
qmbs.
elavenil
Premium Member
Premium Member
Posts: 467
Joined: Thu Jan 31, 2002 10:20 pm
Location: Singapore

Post by elavenil »

Hi qmbs,

Can you share with us how the problem was resolved so that everyone else will get benefit while searching the forum for these kind of problems.

I would suggesst you to separate the topic if this is considered as a separate issue.

Are you doing any conversion/transformation in the transformer?

Pls look at the transformer code at line 87. JOB.368353998.DT.1375338332.TRANS1 can be found RT_BP4 folder under your project directory.

HTWH.

Regards
Saravanan
qmbs
Participant
Posts: 13
Joined: Mon Aug 29, 2005 12:47 am

Post by qmbs »

Hi saravanan ,

i removed my table definitions and imported again then it works fine.
and regarding my anther issue i could nt find anything . :(
i am getting the following:

* Tokens were replaced below as follows:
* Pin%%V0S8P1.Column%%1 <= DSLink3.EMPNO
* Pin%%V0S8P1.Column%%2 <= DSLink3.ENAME
* Pin%%V0S8P1.Column%%3 <= DSLink3.JOB
* Pin%%V0S8P1.Column%%4 <= DSLink3.MGR
* Pin%%V0S8P1.Column%%5 <= DSLink3.HIREDATE
* Pin%%V0S8P1.Column%%6 <= DSLink3.SAL
* Pin%%V0S8P1.Column%%7 <= DSLink3.COMM
* Pin%%V0S8P1.Column%%8 <= DSLink3.DEPTNO
* GET.Pin%%V0S8P1 <= GET.DSLink3
* Pin%%V0S8P1.REJECTEDCODE <= DSLink3.REJECTEDCODE
* Pin%%V0S8P2.Column%%1 <= DSLink9.EMPNO
* Pin%%V0S8P2.Column%%2 <= DSLink9.ENAME
* Pin%%V0S8P2.Column%%3 <= DSLink9.JOB
* Pin%%V0S8P2.Column%%4 <= DSLink9.MGR
* Pin%%V0S8P2.Column%%5 <= DSLink9.HIREDATE
* Pin%%V0S8P2.Column%%6 <= DSLink9.SAL
* Pin%%V0S8P2.Column%%7 <= DSLink9.COMM
* Pin%%V0S8P2.Column%%8 <= DSLink9.DEPTNO
* PUT.Pin%%V0S8P2 <= PUT.DSLink9
* Pin%%V0S8P2.REJECTED <= DSLink9.REJECTED
* Pin%%V0S8P2.REJECTEDCODE <= DSLink9.REJECTEDCODE
*
* Subroutine for active stage case4_oci_oci.Transformer_8 generated at 18:04:50 29 AUG 2005
*
SUBROUTINE DSTransformerStage(HANDLES,ERROR)

$INCLUDE DSINCLUDE DSD_RTCONFIG.H
$INCLUDE DSINCLUDE DSD_STAGE.H
$INCLUDE DSINCLUDE DSD_BCI.H

$INCLUDE DSINCLUDE JOBCONTROL.H
DEFFUN DSRLoadString(Num,Text,Args) CALLING '*DataStage*DSR_LOADSTRING'
$DEFINE Pin%%V0S8P1.Column%%1 STAGECOM.ARR(1)
$DEFINE Pin%%V0S8P1.Column%%2 STAGECOM.ARR(2)
$DEFINE Pin%%V0S8P1.Column%%3 STAGECOM.ARR(3)
$DEFINE Pin%%V0S8P1.Column%%4 STAGECOM.ARR(4)
$DEFINE Pin%%V0S8P1.Column%%5 STAGECOM.ARR(5)
$DEFINE Pin%%V0S8P1.Column%%6 STAGECOM.ARR(6)
$DEFINE Pin%%V0S8P1.Column%%7 STAGECOM.ARR(7)
$DEFINE Pin%%V0S8P1.Column%%8 STAGECOM.ARR(8)
$DEFINE GET.Pin%%V0S8P1 CALL $DSP.GetNext(1,Pin%%V0S8P1.REJECTEDCODE)
IF STAGECOM.TRACE.STATS THEN CALL $PERF.NAME(-2,'DSLink9.Derivation')
$DEFINE Pin%%V0S8P2.Column%%1 STAGECOM.ARR(1)
$DEFINE Pin%%V0S8P2.Column%%2 STAGECOM.ARR(2)
$DEFINE Pin%%V0S8P2.Column%%3 STAGECOM.ARR(3)
$DEFINE Pin%%V0S8P2.Column%%4 STAGECOM.ARR(4)
$DEFINE Pin%%V0S8P2.Column%%5 STAGECOM.ARR(5)
$DEFINE Pin%%V0S8P2.Column%%6 STAGECOM.ARR(6)
$DEFINE Pin%%V0S8P2.Column%%7 STAGECOM.ARR(7)
$DEFINE Pin%%V0S8P2.Column%%8 STAGECOM.ARR(8)
$DEFINE PUT.Pin%%V0S8P2 CALL $DSP.Put(2, Pin%%V0S8P2.REJECTEDCODE)

UPDATE.COUNT = STAGECOM.RATE



LOOP
REJECTED = @TRUE
* Get next row from primary input pin DSLink3
STAGECOM.PINNO = 1
GET.Pin%%V0S8P1
ERROR = Pin%%V0S8P1.REJECTEDCODE
WHILE NOT(ERROR)

STAGECOM.PINNO = 2
* This is the first link in this TXN group, start the transaction.
IF BCICOM.TXGROUPSTATUS<1,1> = "" OR BCICOM.TXGROUPSTATUS<1,1> = 0 THEN
TXSTATUS = 0
CALL $DSP.TxnStart(2, TXSTATUS)
IF TXSTATUS = TXNStarted THEN BCICOM.TXGROUPSTATUS<1,1> = TXSTATUS
BCICOM.TXGROUPSTATUS<1,2> = 2 ;* Pin handle
END
Pin%%V0S8P2.REJECTEDCODE = 0
IF BCICOM.TXGROUPSTATUS<1,1> = TXNStarted THEN
IF STAGECOM.TRACE.STATS THEN CALL $PERF.BEGIN(-2)
IF @TRUE THEN
* Column derivation code for pin DSLink9
Pin%%V0S8P2.REJECTED = @FALSE
IF STAGECOM.TRACE.STATS THEN CALL $PERF.END(-2)

PUT.Pin%%V0S8P2
IF NOT(Pin%%V0S8P2.REJECTEDCODE) THEN
REJECTED = @FALSE
END ELSE
Pin%%V0S8P2.REJECTED = @TRUE
* TXN Continue on SQL write failure
END
END
ELSE
Pin%%V0S8P2.REJECTED = @TRUE
Pin%%V0S8P2.REJECTEDCODE = 0
* TXN Continue on link constraint failure
END
END


FOR I = 1 TO 1
BEGIN CASE
CASE BCICOM.TXGROUPSTATUS<I,1> = TXNCommitted OR BCICOM.TXGROUPSTATUS<I,1> = TXNAborted
BCICOM.TXGROUPSTATUS<I,1> = ""
CASE BCICOM.TXGROUPSTATUS<I,1> <> ""
BCICOM.TXGROUPSTATUS<I,1> = TXNStarted
END CASE
NEXT I

UPDATE.COUNT -= 1
IF UPDATE.COUNT LE 0 THEN CALL DSD.Update(HANDLES);UPDATE.COUNT = STAGECOM.RATE
REPEAT

IF (ERROR = DSE.EOF) or (ERROR = DSE.EOT) THEN
TXSTATUS = 0
* Transaction size is 0 - commit pending rows.
CALL $DSP.TxnCommit(2, TXSTATUS)
END
RETURN
END


pls help me to resolve this issue.
qmbs
Participant
Posts: 13
Joined: Mon Aug 29, 2005 12:47 am

Post by qmbs »

Hi saravanan ,

i removed my table definitions and imported again then it works fine.
and regarding my anther issue i could nt find anything . :(
i am getting the following:

* Tokens were replaced below as follows:
* Pin%%V0S8P1.Column%%1 <= DSLink3.EMPNO
* Pin%%V0S8P1.Column%%2 <= DSLink3.ENAME
* Pin%%V0S8P1.Column%%3 <= DSLink3.JOB
* Pin%%V0S8P1.Column%%4 <= DSLink3.MGR
* Pin%%V0S8P1.Column%%5 <= DSLink3.HIREDATE
* Pin%%V0S8P1.Column%%6 <= DSLink3.SAL
* Pin%%V0S8P1.Column%%7 <= DSLink3.COMM
* Pin%%V0S8P1.Column%%8 <= DSLink3.DEPTNO
* GET.Pin%%V0S8P1 <= GET.DSLink3
* Pin%%V0S8P1.REJECTEDCODE <= DSLink3.REJECTEDCODE
* Pin%%V0S8P2.Column%%1 <= DSLink9.EMPNO
* Pin%%V0S8P2.Column%%2 <= DSLink9.ENAME
* Pin%%V0S8P2.Column%%3 <= DSLink9.JOB
* Pin%%V0S8P2.Column%%4 <= DSLink9.MGR
* Pin%%V0S8P2.Column%%5 <= DSLink9.HIREDATE
* Pin%%V0S8P2.Column%%6 <= DSLink9.SAL
* Pin%%V0S8P2.Column%%7 <= DSLink9.COMM
* Pin%%V0S8P2.Column%%8 <= DSLink9.DEPTNO
* PUT.Pin%%V0S8P2 <= PUT.DSLink9
* Pin%%V0S8P2.REJECTED <= DSLink9.REJECTED
* Pin%%V0S8P2.REJECTEDCODE <= DSLink9.REJECTEDCODE
*
* Subroutine for active stage case4_oci_oci.Transformer_8 generated at 18:04:50 29 AUG 2005
*
SUBROUTINE DSTransformerStage(HANDLES,ERROR)

$INCLUDE DSINCLUDE DSD_RTCONFIG.H
$INCLUDE DSINCLUDE DSD_STAGE.H
$INCLUDE DSINCLUDE DSD_BCI.H

$INCLUDE DSINCLUDE JOBCONTROL.H
DEFFUN DSRLoadString(Num,Text,Args) CALLING '*DataStage*DSR_LOADSTRING'
$DEFINE Pin%%V0S8P1.Column%%1 STAGECOM.ARR(1)
$DEFINE Pin%%V0S8P1.Column%%2 STAGECOM.ARR(2)
$DEFINE Pin%%V0S8P1.Column%%3 STAGECOM.ARR(3)
$DEFINE Pin%%V0S8P1.Column%%4 STAGECOM.ARR(4)
$DEFINE Pin%%V0S8P1.Column%%5 STAGECOM.ARR(5)
$DEFINE Pin%%V0S8P1.Column%%6 STAGECOM.ARR(6)
$DEFINE Pin%%V0S8P1.Column%%7 STAGECOM.ARR(7)
$DEFINE Pin%%V0S8P1.Column%%8 STAGECOM.ARR(8)
$DEFINE GET.Pin%%V0S8P1 CALL $DSP.GetNext(1,Pin%%V0S8P1.REJECTEDCODE)
IF STAGECOM.TRACE.STATS THEN CALL $PERF.NAME(-2,'DSLink9.Derivation')
$DEFINE Pin%%V0S8P2.Column%%1 STAGECOM.ARR(1)
$DEFINE Pin%%V0S8P2.Column%%2 STAGECOM.ARR(2)
$DEFINE Pin%%V0S8P2.Column%%3 STAGECOM.ARR(3)
$DEFINE Pin%%V0S8P2.Column%%4 STAGECOM.ARR(4)
$DEFINE Pin%%V0S8P2.Column%%5 STAGECOM.ARR(5)
$DEFINE Pin%%V0S8P2.Column%%6 STAGECOM.ARR(6)
$DEFINE Pin%%V0S8P2.Column%%7 STAGECOM.ARR(7)
$DEFINE Pin%%V0S8P2.Column%%8 STAGECOM.ARR(8)
$DEFINE PUT.Pin%%V0S8P2 CALL $DSP.Put(2, Pin%%V0S8P2.REJECTEDCODE)

UPDATE.COUNT = STAGECOM.RATE



LOOP
REJECTED = @TRUE
* Get next row from primary input pin DSLink3
STAGECOM.PINNO = 1
GET.Pin%%V0S8P1
ERROR = Pin%%V0S8P1.REJECTEDCODE
WHILE NOT(ERROR)

STAGECOM.PINNO = 2
* This is the first link in this TXN group, start the transaction.
IF BCICOM.TXGROUPSTATUS<1,1> = "" OR BCICOM.TXGROUPSTATUS<1,1> = 0 THEN
TXSTATUS = 0
CALL $DSP.TxnStart(2, TXSTATUS)
IF TXSTATUS = TXNStarted THEN BCICOM.TXGROUPSTATUS<1,1> = TXSTATUS
BCICOM.TXGROUPSTATUS<1,2> = 2 ;* Pin handle
END
Pin%%V0S8P2.REJECTEDCODE = 0
IF BCICOM.TXGROUPSTATUS<1,1> = TXNStarted THEN
IF STAGECOM.TRACE.STATS THEN CALL $PERF.BEGIN(-2)
IF @TRUE THEN
* Column derivation code for pin DSLink9
Pin%%V0S8P2.REJECTED = @FALSE
IF STAGECOM.TRACE.STATS THEN CALL $PERF.END(-2)

PUT.Pin%%V0S8P2
IF NOT(Pin%%V0S8P2.REJECTEDCODE) THEN
REJECTED = @FALSE
END ELSE
Pin%%V0S8P2.REJECTED = @TRUE
* TXN Continue on SQL write failure
END
END
ELSE
Pin%%V0S8P2.REJECTED = @TRUE
Pin%%V0S8P2.REJECTEDCODE = 0
* TXN Continue on link constraint failure
END
END


FOR I = 1 TO 1
BEGIN CASE
CASE BCICOM.TXGROUPSTATUS<I,1> = TXNCommitted OR BCICOM.TXGROUPSTATUS<I,1> = TXNAborted
BCICOM.TXGROUPSTATUS<I,1> = ""
CASE BCICOM.TXGROUPSTATUS<I,1> <> ""
BCICOM.TXGROUPSTATUS<I,1> = TXNStarted
END CASE
NEXT I

UPDATE.COUNT -= 1
IF UPDATE.COUNT LE 0 THEN CALL DSD.Update(HANDLES);UPDATE.COUNT = STAGECOM.RATE
REPEAT

IF (ERROR = DSE.EOF) or (ERROR = DSE.EOT) THEN
TXSTATUS = 0
* Transaction size is 0 - commit pending rows.
CALL $DSP.TxnCommit(2, TXSTATUS)
END
RETURN
END


pls help me to resolve this issue.

regards
qmbs
Post Reply