cancel
Showing results for 
Search instead for 
Did you mean: 

Error JDBC Receiver UPDATE_INSERT action

former_member441596
Participant
0 Kudos

Hi ,

I configured one scenario RFC to JDBC  and manually created receiver JDBC structure as below..

Message Mapping:

my requirement is in the table have do UPDATE_INSERT both action ,while passing single line item data processed it is successfully insert/update in table...

1)In multiple line item data passing from source to target  (INSERT action) data successfully updated in DB table...

2) In multiple line item data passing from source to target (UPDATE action) only first line date is update and remaining line item data not updated ,getting error:Error processing request in sax parser: Error when executing statement for table/stored proc. 'ZEMPDETAIL' (structure 'Statement6'): java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (FRONTORA.PK_ZEMPDETAIL) violated ..


3)The source data having multiple line item consisting some line items INSERT action and some line item are UPDATE action in DB table  not processed in this case also getting above error log..


Please suggest me how to resolve this case UPDATE_INSERT both action at a time with multiple line item data....



Thanks & Regards,

Naidu

Accepted Solutions (0)

Answers (2)

Answers (2)

anupam_ghosh2
Active Contributor
0 Kudos

Hi Varri,

              The error ":Error processing request in sax parser: Error when executing statement for table/stored proc. 'ZEMPDETAIL' (structure 'Statement6'): java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (FRONTORA.PK_ZEMPDETAIL) violated .."

means you tried to execute an INSERT or UPDATE statement that has created a duplicate value in a field restricted by a unique index.

First in database side please check the constraint DB team has put which is preventing the update/insert. The constraint can be found out by simple sql command

SELECT DISTINCT table_name

FROM all_indexes

WHERE index_name = 'PK_ZEMPDETAIL';

This would return the name of the table whose unique constraint was violated.

Then you need to remove the constraint or Change the constraint to allow duplicate values.or Modify your SQL statement so that a duplicate value is not created.

Regards

Anupam

former_member182412
Active Contributor
0 Kudos

Hi Varri,

Check below structure for UPDATE_INSERT as per this link Defining an UPDATE_INSERT Statement - Advanced Adapter Engine - SAP Library


<StatementName>

  <dbTableName action=”UPDATE_INSERT”>

  <table>realDbTableName</table>

  <access>

  <col1>val1</col1>

  <col2>val2new</col2>

  </access>

  <key1>

  <col2>val2old</col2>

  <col4>val4</col4>

  </key1>

  <key2>

  <col2>val2old2</col2>

  </key2>

  </dbTableName>

  </StatementName>

You need to put one access segment only not multiple check this statement in the same link.


Enter the new column values in the <access> element.

Enter exactly one <access>element.

If you want multiple records updated then you need to repeat the statement(<StatementName>) not access.

Regards,

Praveen.