Jdbc - updating  a table

Hi all,
How can i easily update a numeric value (int, float) in a table ? (and taking into account the previous value)
-> Do i have first to make a query to get the current value of an item in the table, then doing an "executeUpdate" with the new value to add to this one one?
I'm looking in fact for a combination of the 2 instructions....
thanks in advance

You can try putting the algebra into the SQL, I think most databases will handle it.
Something like
UPDATE table1 SET counter = counter + 1 WHERE id=123
Of course your program won't know the value.

Similar Messages

  • Jdbc - updating multiple tables

    Hello
    I am working on an old app using jdbc. There is a requirement to update several tables at once
    At the moment it is done roughly as follows
    //set autocommit to false
    PreparedStatement ps1 = connection.prepareStatement( sql_1 );
    //set parameters on ps1
    PreparedStatement ps2 = connection.prepareStatement( sql_2 );
    //set parameters on ps2
    ...and so on
    //execute updates on each statement
    connection.commit();
    However shouldnt this be done with batch processing? Are there any advantages/disadvantages to the above procedure?
    many thanks
    Stephen

    Batching should be faster. Let me guesstimate some numbers:
    A simple insert with not too many columns might take 5 ms. Do that ten times and it'll be 50 ms. A hundred inserts 500 ms.
    If you batch the inserts, one insert will still take 5 ms. Ten inserts might take 10 ms. A hundred inserts 50 ms.
    So you need to figure: how many inserts are you really doing and how often. If you are talking about saving half a second twice a day, stop messing with that already working and debugged code. Or do you insert 10,000 rows every minute all around the clock - at which point you may care significantly more.
    If you find that you might care, time your setup. Time the inserts you do now, then time it with batching. Different databases and drivers will greatly affect your mileage. There may be databases whose wire protocol does not even support batching.

  • How to update two tables in a single call using JDBC Sender adapter

    Hello All,
    The scenario is, database entries have to be selected from two tables and at the same time those tables have to be udpated with the flag.
    We are using JDBC sender adapter and in Select Query, we are fetching the data by joinin the two tables.
    Update Statemtent: We can only update one table using this statement.
    Is it possible to update two tables using the Update Statement without using Stored Procedures.
    Let me know.
    Regards,
    Sreenivas.

    Hi Sreenivas,
    > Is it possible to update two tables using the Update Statement without using Stored Procedures.
    Yes its possible through join statement
    Check this links
    Update in JDBC Sender adapter for more than one table
    data from 2 tables for jdbc sender adapter
    Regards
    Ramesh

  • JDBC Adapter - Multiple Table Update - Sequence Number

    I have to design a integration scenario where I will be updating 4 tables in a oracle database. One of these tables is a header table and the rest are detail tables. I have to generate a sequence number using Oracle Sequence number object which is one of the columns in the header table.
    How can i use the Oracle SEquence number object to get the next value with JDBC Adapter?

    Use an Enhancement Spot

  • Updating multpile tables and multiple rows - JDBC adapter

    Hi,
    The scenario is like this. i receive an Idoc which has header information and various line items (multiple occurrance of a segment). the hearder details have to be sent to one table, TableA, and all line items has to go to another table, TableB, and for each line item, a new row has to be inserted in TableB.
    How can i acheive this using JDBC adapter? how should my data type look like? what are the settings i need to do in adapter config?
    Thanks and Regards,
    Rashmi

    Hi Rashmi,
    You can use the following link for the JDBC adapter call :
    http://help.sap.com/saphelp_nw04/helpdata/en/ae/d03341771b4c0de10000000a1550b0/frameset.htm
    You need to provide the JDBC Driver, Connection,User Name and the password.
    The data type structure you can take from the Bhavesh blog:
    JDBC Receiver Adapter -- Synchronous Select – Step by Step
    Since you just need to update the tables, take only the sender side of the blog, i.e. the request part and configure the scenario accordingly.
    Regards,
    Sanjeev.

  • Updating multiple tables using JDBC Adapter

    Hi,
    I am trying to insert/update multiple tables using one message via JDBC adapter. The following is the message being posted. However, only the first statement was executed. Anything wrong?
    Thanks in advance!
    Hart
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:DeliveryDBUpdate xmlns:ns0="http://test.com/r3_integration"><DeliveryData><DelHeader action="UPDATE_INSERT"><table>DelHeader</table><access><DelNo>0080000230</DelNo><DelType>LF</DelType><XOverwrite>X</XOverwrite><ShipTo>0000000026</ShipTo><SoldTo>0000000026</SoldTo><Priority>00</Priority><DocDate>02/17/2007</DocDate><GText>CIF Test</GText><DelDate>02/20/2007</DelDate><PickDate>02/20/2007</PickDate><ShipPoint>NO02</ShipPoint><PackCount>00000</PackCount></access><key><DelNo>0080000230</DelNo></key></DelHeader>
    <DelItem action="INSERT"><table>DelItem</table><access><DelNo>0080000230</DelNo><ItemNo>000010</ItemNo><GText>10# GRAN-GREAT VALUE</GText><Material>G04410G611</Material><Plant>6005</Plant><SLoc>6005</SLoc><RefDoc>mmenon32</RefDoc><RefItem>00000000</RefItem><DelQty>5.000</DelQty><UOM>BL</UOM></access><access><DelNo>0080000230</DelNo><ItemNo>000020</ItemNo><GText>25# GRAN- GREAT VALUE</GText><Material>G04025G611</Material><Plant>6005</Plant><SLoc>6005</SLoc><RefDoc>mmenon32</RefDoc><RefItem>00000000</RefItem><DelQty>5.000</DelQty><UOM>BG</UOM></access></DelItem></DeliveryData></ns0:DeliveryDBUpdate>

    Hi,
    You need 2 STATEMENT level tags,
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:DeliveryDBUpdate xmlns:ns0="http://test.com/r3_integration">
    <b><DeliveryData1></b>
    <DelHeader action="UPDATE_INSERT">
    <table>DelHeader</table>
    <access>
    <DelNo>0080000230</DelNo>
    <DelType>LF</DelType>
    <XOverwrite>X</XOverwrite>
    <ShipTo>0000000026</ShipTo>
    <SoldTo>0000000026</SoldTo>
    <Priority>00</Priority>
    <DocDate>02/17/2007</DocDate>
    <GText>CIF est</GText>
    <DelDate>02/20/2007</DelDate>
    <PickDate>02/20/2007</PickDate>
    <ShipPoint>NO02</ShipPoint>
    <PackCount>00000</PackCount>
    </access>
    <key>
    <DelNo>0080000230</DelNo>
    </key>
    </DelHeader>
    <b><DeliveryData1></b>
    <b><DeliveryData2></b>
    <DelItem action="INSERT">
    <table>DelItem</table>
    <access>
    <DelNo>0080000230</DelNo>
    <ItemNo>000010</ItemNo>
    <GText>10# GRAN-GREAT VALUE</GText>
    <Material>G04410G611</Material>
    <Plant>6005</Plant>
    <SLoc>6005</SLoc>
    <RefDoc>mmenon32</RefDoc>
    <RefItem>00000000</RefItem>
    <DelQty>5.000</DelQty>
    <UOM>BL</UOM>
    </access>
    <access>
    <DelNo>0080000230</DelNo>
    <ItemNo>000020</ItemNo>
    <GText>25# GRAN- GREAT VALUE</GText>
    <Material>G04025G611</Material>
    <Plant>6005</Plant>
    <SLoc>6005</SLoc>
    <RefDoc>mmenon32</RefDoc>
    <RefItem>00000000</RefItem>
    <DelQty>5.000</DelQty>
    <UOM>BG</UOM>
    </access>
    </DelItem>
    <b></DeliveryData2></b>
    </ns0:DeliveryDBUpdate>
    Try with such a strcuture and let us know if it works.
    Regards
    Bhavesh

  • JDBC activity timed out while updating a table.

    Hi,
    We have observed the exception *'JDBC activity timed out while updating the table -Table1"* in our logs in prod environment.
    1)we verified the AWR report for that particular time and observed that one update statement was trying to update the table table1.
    its a simple update statement as below
    UPADTE TABLE1 SET COL1=VAL1,COL2=VAL2 WHERE ID1=VAL1 AND ID2=VAL2;
    there is a PK index on ID2 column.
    2)we also came to know that there were no locks on TABLE1 during this time.
    can some one please let me know what could be the possible reason for this kind of exception?
    Thanks

    958572 wrote:
    Hi,
    We have observed the exception *'JDBC activity timed out while updating the table -Table1"* in our logs in prod environment.
    1)we verified the AWR report for that particular time and observed that one update statement was trying to update the table table1.
    its a simple update statement as below
    UPADTE TABLE1 SET COL1=VAL1,COL2=VAL2 WHERE ID1=VAL1 AND ID2=VAL2;
    there is a PK index on ID2 column.
    2)we also came to know that there were no locks on TABLE1 during this time.
    can some one please let me know what could be the possible reason for this kind of exception?
    ThanksOS/Networking mis-configuration.
    Oracle does not know or care about the type or flavor of remote client (JDBC, OCI, ODBC, etc).
    Oracle's default configuration contains no timeout.
    I suspect a FireWall setting.

  • Updating two tables through JDBC

    <b>Hai,
    Can anybody please answer the following question?
    How can I update two table in Receiver by using JDBC Adapter at receiver side from single source structure.
    Thanks in advance.</b>

    Hi ,
    Create following structure for inbound data type to insert data in DB using JDBC receiver adapter here dbTableName1 is for first table and dbTableName2 for second table .
    <StatementName2>
    <dbTableName1 action="UPDATE_INSERT">
    <table>realDbTableName</table>
    <access>
    <col1>val1</col1>
    <col2>val2</col2>
    </access>
    <access>
    <col1>val11</col1>
    </access>
    </dbTableName1> 
    <dbTableName2 action="UPDATE_INSERT">
    <table>realDbTableName</table>
    <access>
    <col1>val1</col1>
    <col2>val2</col2>
    </access>
    <access>
    <col1>val11</col1>
    </access>
    </dbTableName2> 
      </StatementName2>
    Thanks ,
    Suvarna
    pls award pts if it helps

  • Issue while Updating a table having Unique Secondary Index

    Hi,
    I am trying to update a 'Z' table in which there are 5 fields comprising of primary key. Out of them 2 key fields are defined as a part of seconadry index with 'Unique' option selected.
    As per the requirement, I am trying to update the table using modify statement so whenever this statement occurs it will check the primary keys and accordingly try to m

    958572 wrote:
    Hi,
    We have observed the exception *'JDBC activity timed out while updating the table -Table1"* in our logs in prod environment.
    1)we verified the AWR report for that particular time and observed that one update statement was trying to update the table table1.
    its a simple update statement as below
    UPADTE TABLE1 SET COL1=VAL1,COL2=VAL2 WHERE ID1=VAL1 AND ID2=VAL2;
    there is a PK index on ID2 column.
    2)we also came to know that there were no locks on TABLE1 during this time.
    can some one please let me know what could be the possible reason for this kind of exception?
    ThanksOS/Networking mis-configuration.
    Oracle does not know or care about the type or flavor of remote client (JDBC, OCI, ODBC, etc).
    Oracle's default configuration contains no timeout.
    I suspect a FireWall setting.

  • Exception while updating a table

    Hi
    while updating a table throw entity bean i am getting
    Base EJBException
    java.sql.SQLException: ORA-01401: inserted value too large for column
    how to resolve this problem
    com.sap.engine.services.ejb.exceptions.BaseEJBException: SQLException while the data is being flushed. The persistent object is com.chep.portfolio.da.ejb.admin.UserPreferencesEJBBean4_0Persistent.
         at com.sap.engine.services.ejb.entity.pm.UpdatablePersistent.ejbFlush(UpdatablePersistent.java:101)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.flushAll(TransactionContext.java:429)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.flush(TransactionContext.java:378)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.beforeCompletion(TransactionContext.java:506)
         at com.sap.engine.services.ejb.entity.SynchronizationList.beforeCompletion(SynchronizationList.java:136)
         at com.sap.engine.services.ts.jta.impl.TransactionImpl.commit(TransactionImpl.java:226)
         at com.chep.portfolio.da.ejb.admin.UserPreferencesEJBLocalLocalObjectImpl4_0.setUserProfileId(UserPreferencesEJBLocalLocalObjectImpl4_0.java:614)
         at com.chep.portfolio.admin.business.facade.user.UserFacadeBean.updateUserPreferences(UserFacadeBean.java:774)
         at com.chep.portfolio.admin.business.facade.user.UserFacadeLocalLocalObjectImpl0_0.updateUserPreferences(UserFacadeLocalLocalObjectImpl0_0.java:247)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.sap.engine.services.webservices.runtime.EJBImplementationContainer.invokeMethod(EJBImplementationContainer.java:126)
         at com.sap.engine.services.webservices.runtime.RuntimeProcessor.process(RuntimeProcessor.java:157)
         at com.sap.engine.services.webservices.runtime.RuntimeProcessor.process(RuntimeProcessor.java:79)
         at com.sap.engine.services.webservices.runtime.servlet.ServletDispatcherImpl.doPost(ServletDispatcherImpl.java:92)
         at SoapServlet.doPost(SoapServlet.java:51)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.sql.SQLException: ORA-01401: inserted value too large for column
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
         at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
         at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:582)
         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
         at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144)
         at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2152)
         at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2035)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2876)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:609)
         at com.sap.engine.services.dbpool.wrappers.PreparedStatementWrapper.executeUpdate(PreparedStatementWrapper.java:240)
         at com.chep.portfolio.da.ejb.admin.UserPreferencesEJBBean4_0Persistent.ejb_iUpdate(UserPreferencesEJBBean4_0Persistent.java:552)
         at com.sap.engine.services.ejb.entity.pm.UpdatablePersistent.ejbFlush(UpdatablePersistent.java:80)
         ... 33 more
    java.sql.SQLException: ORA-01401: inserted value too large for column
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
         at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
         at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:582)
         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
         at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144)
         at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2152)
         at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2035)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2876)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:609)
         at com.sap.engine.services.dbpool.wrappers.PreparedStatementWrapper.executeUpdate(PreparedStatementWrapper.java:240)
         at com.chep.portfolio.da.ejb.admin.UserPreferencesEJBBean4_0Persistent.ejb_iUpdate(UserPreferencesEJBBean4_0Persistent.java:552)
         at com.sap.engine.services.ejb.entity.pm.UpdatablePersistent.ejbFlush(UpdatablePersistent.java:80)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.flushAll(TransactionContext.java:429)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.flush(TransactionContext.java:378)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.beforeCompletion(TransactionContext.java:506)
         at com.sap.engine.services.ejb.entity.SynchronizationList.beforeCompletion(SynchronizationList.java:136)
         at com.sap.engine.services.ts.jta.impl.TransactionImpl.commit(TransactionImpl.java:226)
         at com.chep.portfolio.da.ejb.admin.UserPreferencesEJBLocalLocalObjectImpl4_0.setUserProfileId(UserPreferencesEJBLocalLocalObjectImpl4_0.java:614)
         at com.chep.portfolio.admin.business.facade.user.UserFacadeBean.updateUserPreferences(UserFacadeBean.java:774)
         at com.chep.portfolio.admin.business.facade.user.UserFacadeLocalLocalObjectImpl0_0.updateUserPreferences(UserFacadeLocalLocalObjectImpl0_0.java:247)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.sap.engine.services.webservices.runtime.EJBImplementationContainer.invokeMethod(EJBImplementationContainer.java:126)
         at com.sap.engine.services.webservices.runtime.RuntimeProcessor.process(RuntimeProcessor.java:157)
         at com.sap.engine.services.webservices.runtime.RuntimeProcessor.process(RuntimeProcessor.java:79)
         at com.sap.engine.services.webservices.runtime.servlet.ServletDispatcherImpl.doPost(ServletDispatcherImpl.java:92)
         at SoapServlet.doPost(SoapServlet.java:51)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    how to solve this one

    Hi, vanaja,
    "inserted value too large for column" - this is the reason for the exception. That is, you are trying to persist a value that exceeds the table column capacity.
    What you can do is reduce the length of the data element you want to update, or, 2) first increase the relevant column maximum length, then try to update the table again.
    If you choose 2), and if you are using the system database, then you can use Java Dictionary and follow [THIS|http://help.sap.com/saphelp_nw70/helpdata/en/fe/53fb40f17af66fe10000000a1550b0/frameset.htm] procedure to increase the maximum length of a column.
    Hope that helps!
    Regards,
    Yordan

  • Updating database table based on BAPI response in case of error

    Dear Experts,
    My scenario includes pulling records from database stagging table, and push one record at a time to BAPI_ALM_NOTIF_CREATE.
    I am using sender JDBC adapter(with select query and update query to mark records as processed).
    My question is : Once XI selects records, immediately status is updated in stagging table for the selected records as processed. what if BAPI could not create document? In this case I need to update status of that record as "Not processed".
    What should I use?
    If BPM, then please tell me the steps.
    Is this possible without BPM?
    What are the chances of failure between XI and BAPI?
    Please provide your inputs.
    Thank you.
    Div

    >
    S.R.Suraj wrote:
    > Hi Divyesh,
    >
    > Your steps are correct..
    >
    > 1. JBDC will read record with code = 0 and make it 1...
    > 2. Once the bapi process is completed all these read records shoudl be made as 2 (if completed successful) else 0 if bapi went into some error.. so that again the jdbc adapter can poll these records and give back to bapi for processing...
    >
    > Now your questions
    > >>So after selection and updation only proxy call will be done right? So for every polling of jdbc adapter ,proxy call will happen?
    > YEs every poll of jdbc will result in a proxy call and every time it will contain next set of records (as the earlier one have already marked as 1)
    >
    > >>How to achieve this?
    > Since this is a synchronous scenario JBDC->XI->Proxy and reverse, I have suggested to use responseonewaybean as a module in sender jdbc adapter (because sender jdbc cannot act synchronously thats why you need to use this module)..
    >
    > >>Do i need to use BPM? please suggest steps.
    > and if this is not working then go for BPM..the steps as i mentioned in my first thread..
    >
    > Regards
    > Suraj
    Hi Suraj,
    Thanks a lot for your support.
    It would be good if you can provide your inputs.
    Stagging table records status:
    Flag = 0 (XI will poll records)
    Flag = 1(XI has polled records and XI will se tthis flag by JDBC adapter)
    Flag =2 (should be done based on response from Proxy Tables parameter) Proxy will set tables parameter which will include info on error message and type.
    (Now based on new requiremets: for error records status should not be reset to 0 so that XI can poll records again, now stagging table should contain error records(for which proxy can not create notification in SAP) with error message and status flag 2)
    Now scenario would be JDBC to Proxy.
    Polling interval for JDBC adapter should be 1 minute.
    So I think status 0 to 1 will be done by XI after immediately selecting records.
    But how about Status 2 that has to be set only for error records only and  with error information.
    I have to update stagging table records with status 2 and error info based on proxy table response. How this can be done?
    This updation will be done in case of error only.
    I was thinking this aproach:
    We can have two interfaces.
    First interface will be jdbc to proxy:
    JDBC adapter select and update records with flag =1 and then send to proxy call and create document in SAP. At SAP side if document can not be created then they will store that error info in some table.
    Second Interfgace:
    Client SAP Proxy will periodically run and send these error records info to XI and XI will update stagging table records accordingly.
    Suraj, What is your sugestion in this solution? Do I need to use Responseonewaybean?
    Thanks Suraj
    Div

  • Proxy to JDBC Update

    Hi Friends,
    I have a issue in proxy to JDBC update. there are onley 4 fileds to be inserted  into table..
    And before inserting the fileds into table i need to check whether the fields are there or not if not insert if they are then update,, i need to check all the four fields. for this..
    Any way to solve this kind of issue..
    Regards
    Vijay

    But what is the need of it?
    In both cases you have to perform some action on database.
    1. If records are there then Update
    2.If records are not present then Insert.
    So if even you check the records prior to sending it to database....you have to do the same(Inster or Update) and UPDATE_INSERT is possible with JDBC rec. adapter.
    Then why you need to check it? Is there any business logic behind it? Or you it was jut for practive purpose?
    Thanks
    Farooq

  • Why my JDBC UPdate hangs up??

    Hi, Sir::
    I use following simple JDBC Update program to update my table TEST,
    See following code:
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    // create table test(Test_ID number, Test_Val varchar(30));
    public class Update {
      public static void main(String args[]) {
        Connection con = null;
        if (args.length != 2) {
          System.out.println("Syntax: <java UpdateApp [number] [string]>");
          return;
        try {
          String driver = "oracle.jdbc.driver.OracleDriver";
          Class.forName(driver).newInstance();
          String url = "jdbc:oracle:thin:@localhost:1521:usa";
          con = DriverManager.getConnection(url, "scott", "tiger");
          Statement s = con.createStatement();
          String test_id = args[0];
          String test_val = args[1];
          int update_count = s.executeUpdate("INSERT INTO test (test_id, test_val) "
                  + "VALUES(" + test_id + ", '" + test_val + "')");
          s.executeUpdate("UPDATE test SET TEST_VAL= 'John Alan' WHERE TEST_ID=1");
          System.out.println(update_count + " rows inserted.");
          s.close();
        } catch (Exception e) {
          e.printStackTrace();
        } finally {
          if (con != null) {
            try {
              con.close();
            } catch (SQLException e) {
              e.printStackTrace();
               When I run with command:
    C:\temp\javaCode>java Update 2 MyTest
    It hangs here and did not process, If I remove the statement:
    s.executeUpdate("UPDATE test SET TEST_VAL= 'John Alan' WHERE TEST_ID=1");
    it works and insert 1 record into Test Table.
    What is wrong here??
    How to fix it??
    Thanks
    Sunny

    Did you try with another Statement? I would try closing the first statement and creating a new one.
          Class.forName(driver).newInstance();
          String url = "jdbc:oracle:thin:@localhost:1521:usa";
          con = DriverManager.getConnection(url, "scott", "tiger");
          Statement s = con.createStatement();
          String test_id = args[0];
          String test_val = args[1];
          int update_count = s.executeUpdate("INSERT INTO test (test_id, test_val) "
                  + "VALUES(" + test_id + ", '" + test_val + "')");
           // close it and create a new one
           s.close();
           s = con.createStatement();
          s.executeUpdate("UPDATE test SET TEST_VAL= 'John Alan' WHERE TEST_ID=1");
    Let me know if it works.

  • Java - how to update settings table

    I have this table which is used to store settings into Oracle database
    I want to update the settings with java. I use this java code to update the settings:
    public void updateDBSettings() throws SQLException {
            //here the values from the updatedSettingsMap will be inserted into the database
                String storedPassword = null;       
                String SQL_Statement = null;
                if (ds == null) throw new SQLException();     
           Connection conn = ds.getConnection();
                if (conn == null) throw new SQLException();     
           try {
                conn.setAutoCommit(false);
                boolean committed = false;
                    try {
                           SQL_Statement = "UPDATE GLOBALSETTINGS" +
                                           "   SET settingValue = case" +
                                           "              when settingName = 'SessionTTL' = then ?" +
                                           "              when settingName = 'MaxUsersActive' = then ?" +
                                           "              else settingValue" +
                                           "            end" +
                                           "WHERE settingName in ('SessionTTL', 'MaxUsersActive');";
                           PreparedStatement updateQuery = conn.prepareStatement(SQL_Statement);
                           updateQuery.setString(1, "20");
                           updateQuery.setString(2, "40");
                           updateQuery.executeQuery();
                           conn.commit();
                           committed = true;
                     } finally {
                           if (!committed) conn.rollback();
                    finally {              
                    conn.close();
           }    When I try to run the code get this error stack in glassfish
    javax.faces.el.EvaluationException: java.sql.SQLSyntaxErrorException: ORA-00905: missing keyword
         at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
         at javax.faces.component.UICommand.broadcast(UICommand.java:315)
         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
         at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
         at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
         at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
         at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
         at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
         at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
         at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
         at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
         at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
         at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
         at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
         at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
         at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
         at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
         at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
         at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
         at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
         at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
         at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
         at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
         at java.lang.Thread.run(Thread.java:722)
    Caused by: java.sql.SQLSyntaxErrorException: ORA-00905: missing keyword
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
         at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
         at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
         at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
         at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
         at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
         at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1044)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3628)
         at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1493)
         at com.sun.gjc.spi.jdbc40.PreparedStatementWrapper40.executeQuery(PreparedStatementWrapper40.java:642)
         at com.DX_57.SM_57.Application.updateDBSettings(Application.java:132)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:601)
         at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:779)
         at javax.el.BeanELResolver.invoke(BeanELResolver.java:528)
         at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:257)
         at com.sun.el.parser.AstValue.invoke(AstValue.java:248)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
         at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
         at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
         ... 32 more
    Can you help me to correct the SQL statement?
    Best wishes
    Peter

    UPDATE GLOBALSETTINGS
       SET settingValue = case
                            when settingName = 'SessionTTL'  then '100'
                            when settingName = 'MaxUsersActive'  then '20'
                            else settingValue
                          endThe result is:
    Error starting at line 1 in command:
    UPDATE GLOBALSETTINGS
       SET settingValue = case
                            when settingName = 'SessionTTL'  then '100'
                            when settingName = 'MaxUsersActive'  then '20'
                            else settingValue
                          end
    Error at Command Line:5 Column:29
    Error report:
    SQL Error: ORA-00904: "SETTINGVALUE": invalid identifier
    00904. 00000 -  "%s: invalid identifier"
    *Cause:   
    *Action:Is there other way to update the table values with one SQL query?
    Edited by: user10484841 on Mar 16, 2012 8:51 AM
    Edited by: user10484841 on Mar 16, 2012 8:52 AM

  • Resource configuration for updating multiple tables

    Hi all,
    My aim is to update multiple tables in Sun Identity Manager
    I would like to know what is the resource to be configured for this
    Could any one help me in solving this issue
    Thanks in advance,
    Shalini

    I have used the Scripted JBDC resource as follows;
    go to Resources > Configure Types and select Scripted JDBC > Save
    at Resources, select resource Type Actions > New Resource
    select Scripted JDBC from the drop down, this should start the wizard
    the wizard will guide you with lots of questions.
    The one problem we had is in the Action Scripts (second wizard page). we found the example scripts
    at the webserver root /idm/sample/ScriptedJdbc/SimpleTable/beanshell
    the above scripts had to be modified to the SQL required for the application, but it worked well with the example databases and codes that it is easily understood.
    there are several examples of different table types here... there are lots of options, see the README iles for each type
    hope this helps;
    TG

Maybe you are looking for

  • I love using 'Speed Dail'. But now suddenly it's gone missing. Please help me get it back

    I've been using Speed Dial for many months (2+years). then, suddenly one day I lost it. It is not where I can see it. If I click the Tools Add-ons drop down I can see speed dial is there but no way can I restore the speed dial icon back to the menu b

  • Check number in accounts payable - urgent

    Hi all, This is regarding the check number not appearing in the invoice document line item in the report. The following is the scenario: 1. Invoice document is entered - KR document type( expense a/c to vendor) 2. Automatic payment program - ZP docum

  • HT5622 Why do i have to submit my payment information when downloading a free app or game or upgrading a program ?

    recently i have bought a new ipad (its my first Apple product) and i gave this ipad to my kids to use it so after a while my kid wanted to download a game and it required that i add my payment info. so i did and we downloaded the game  but after i wh

  • Add files in a mail

    Hi gurus; I'm sending mails with crm and i try to send it. But now i need send this email with a Picture Imported from my hard disk and when i push over the button, one dump appears. When i read the error, it say the problem is when it call the funct

  • Shrink SWF size help!

    Okay I brought in an SWF flash movie innto my dreamweaver page and I have a problem...IT'S HUGE! The heighth is only 66 pixels in the flash 8 document but when I bring the SWF in, it's the size of 400 pixels in heighth...how do I fix this?!?!?!