JDBC receiver adapter for AS/400 DB2

Hi guys,
We have developed an Idoc to JDBC scenario for inserting data in a Z-table of SAP R/3 that sits on an AS/400 DB2.
When testing it, message Mapping is executed successfully, but in communication channel monitoring, we get the following error log:
Error while parsing or executing XML-SQL document: Error processing request in sax parser: Error when executing statement for table/stored proc. 'ZSBU_MATERIALS' (structure 'STATEMENT'): java.sql.SQLException: [SQL0204] ZSBU_MATERIALS in SBU type *FILE not found.
The Z-table name is correct. It seems to me that it needs something more (like a library name).
Any ideas?
Evaggelos

Hi,
There is a difference between db2..and db2 on as400 as on as400 db2 comes as part of the OS install itself..See if you can connect to db2 on the as400 system from qshell..
If you really want to manually configure the connection via the DB2 command line, then you will need to enter catalog commands similar to the following:
   1. > db2 catalog tcpip node as400 remote as400.somecompany.com server 446
   2. > db2 catalog db as400db at node as400 authentication dcs
   3. > db2 catalog dcs db as400db as mydbsvr
Where "as400db" is your local alias for the database and "mydbsvr" is the local RDB name of the AS/400 (set via WRKRDBDIRE).
If you catalogued the DB2 for i5/OS server incorrectly, you may get an SQL5048N error message. SQL7008N is another common error is that the DB2 for i5/OS tables being accessed on the server are not being journaled. To correct the SQL7008N error, you need to start journaling your tables or change the isolation level to No Commit.
Regards
Ravi Raman

Similar Messages

  • JDBC Sender Adapter for AS/400 DB2 (V5R1) Error

    Hi,
    I'm trying to create a connection to an DB2 database on an AS/400 (V5R1) server. First does anyone know what JDBC driver I should use for this... I am trying to use the DB2 Universal type 4 JDBC driver... But have a suspicion I should be using the Legacy type 2 which I'm trying to track down with the client. If anyone can give me details as to where exactly I can find this driver it would be very useful???
    Currently my settings are as follows:
    JDBC Driver: com.ibm.db2.jcc.DB2Driver
    Connection: jdbc:db2://10.101.10.9:446/PROTST01
    I have verified my user is correct etc... I get the following response in the RWB.
    - 2006-01-13 10:54:40 GMT: Error: Accessing database connection 'jdbc:db2://10.101.10.9:446/PROTST01' failed: com.ibm.db2.jcc.b.SqlException: Connection authorization failure occurred. Reason: local security service non-retryable error.
    Can this error be resolved or should I concentrate on installing the legacy type 2 driver and trying that???
    Thanks in advance,
    Pete

    Hi Peter,
    Check if these links are useful to you.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/34a1e590-0201-0010-2c82-9b6229cf4a41
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/7bf6e190-0201-0010-83b7-cc557eb76abe
    Hope this helps.
    Regards,
    Chandra

  • JDBC receiver adapter for AS400-query time out due to Escape Symbol

    Hello,
    I am uisng JDBC receiver adapter for AS 400, When I execute query, the query needs to have arguments in the open and close single ticks ('    12345' )
    My XML pay load looks like this, which is RFC sender. Look at dcudcstmr in <i><b>(' 838912')</b></i>.  When receiver gets this message the ' (single quotes are disappeared.
    <?xml version="1.0" encoding="UTF-8" ?>
    - <ns1:MT_Cma_Customer_Select_Request xmlns:ns1="http://freemanco.com/xi/Get_Customer">
    - <Statement>
    - <LawsonCustomer action="SQL_QUERY">
      <access>select f1.DACMCMPNY from sap.sapcustvew f1, sap.sapcustvew f2 where f2.dcudcstmr in <i><b>(' 838912')</b></i> and (f1.dcudcstmr=f2.dcudcstmr or f2.komaster=f1.dcudcstmr)</access>
      </LawsonCustomer>
      </Statement>
      </ns1:MT_Cma_Customer_Select_Request>
    On the Receiver JDBC adapter I have tried with different combinations of Escape Symbol for Aposrophe as follows
    <b>   \
       '</b>
    As you know this is related to epcape character, I get following error all the time. Looks like the query is not able to execute in the specified time. My question is how do I get single quote as part of query.
    <b>select f1.DACMCMPNY from sap.sapcustvew f1, sap.sapcustvew f2 where f2.dcudcstmr in ( 100001) and (f1.dcudcstmr=f2.dcudcstmr or f2.komaster=f1.dcudcstmr) 2007-09-20 15:56:42 Error Unable to execute statement for table or stored procedure. 'LawsonCustomer' (Structure 'Statement') due to java.sql.SQLException:
    [SQL0666] Estimated query processing time 13766 exceeds limit 8000. 2007-09-20 15:56:42 Error MP: exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LawsonCustomer' (structure 'Statement'): java.sql.SQLException:
    [SQL0666] Estimated query processing time 13766 exceeds limit 8000. 2007-09-20 15:56:42 Error Exception caught by adapter framework: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LawsonCustomer' (structure 'Statement'): java.sql.SQLException:
    [SQL0666] Estimated query processing time 13766 exceeds limit 8000. 2007-09-20 15:56:42 Error Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LawsonCustomer' (structure 'Statement'): java.sql.SQLException:
    [SQL0666] Estimated query processing time 13766 exceeds limit 8000.. Setting message to status failed. 2007-09-20 15:56:42 Error The message status set to FAIL. 2007-09-20 15:56:42 Error Returning synchronous error message to calling application: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LawsonCustomer' (structure 'Statement'): java.sql.SQLException:
    [SQL0666] Estimated query processing time 13766 exceeds limit 8000</b>
    Any feedback or helpfull tips appreciated.
    Thank you,
    Balaji

    Raj,
    Thank you for the reponse. I am using UDF on sender to generate sql statement as you see in sender XML message. After the message reaching receiver, gets executed but no response from AS400 becasue of missing single quotes in the sql query executed.
    Sender XML sends
    <access>select f1.DACMCMPNY from sap.sapcustvew f1, sap.sapcustvew f2 where f2.dcudcstmr in <u><b>(' 838912')</b></u> and (f1.dcudcstmr=f2.dcudcstmr or f2.komaster=f1.dcudcstmr)</access>
    Receiver executes as
    select f1.DACMCMPNY from sap.sapcustvew f1, sap.sapcustvew f2 where f2.dcudcstmr in ( <b><u>838912</u></b>) and (f1.dcudcstmr=f2.dcudcstmr or f2.komaster=f1.dcudcstmr)
    As you see the single quotes are missing. Like I said in previous posting I tried with following Escape Symbol for Aposrophe.
    Let me know if you need more information.
    Thank you,
    Balaji

  • Error in XI Sender JDBC adapter for AS/400 DB2

    We are trying to connect to AS/400 DB2 from XI's Sender JDBC Adapter. we got the driver from DataDirect (connectjdbc.jar) and configured it within XI .The configuration according to the manual for this jar file is
    // Register the driver with the driver manager
    Class.forName("com.ddtek.jdbc.db2.DB2Driver");
    // Establish the Connection
    String url = "jdbc:datadirect:db2://corpserver1:50000;LocationName=ACCTNG";
    Connection con = DriverManager.getConnection(url, "test04", "test04");
    In XI we configured this as:
    Driver = com.ddtek.jdbc.db2.DB2Driver
    Connection = jdbc:datadirect:db2://servername;LocationName=NBHAGWAT
    and specified the user id and password
    <b>Note</b>: The Port Number is optional
    When this was done in XI, we got the below error in the Adapter Monitoring:
    Sender Adapter v2108 for Party '', Service 'JDBCtoFile':
    Configured at 2006-12-19 15:45:31 MST
    History:
    - 2006-12-19 15:45:31 MST: Retry interval started. Length: 10.000 s
    - 2006-12-19 15:45:31 MST: Error: Accessing database connection 'jdbc:datadirect:db2://AS400a;LocationName=NBHAGWAT' failed: DriverManagerException: Cannot establish connection to URL 'jdbc:datadirect:db2://AS400a;LocationName=NBHAGWAT': SAPClassNotFoundException: com.ddtek.jdbc.db2.DB2Driver
    - 2006-12-19 15:45:31 MST: Processing started
    Is this because there is something wrong because the way the connection string is specified.
    Anybody who has configured XI Sender JDBC adapter for AS/400 DB2, please send us some information on this.
    Thank you,
    Regards,
    Balaji

    > SAPClassNotFoundException:
    > com.ddtek.jdbc.db2.DB2Driver
    It looks like your JDBC driver is not found. Have you deployed the driver to XI?
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3867a582-0401-0010-6cbf-9644e49f1a10">https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3867a582-0401-0010-6cbf-9644e49f1a10</a>

  • JDBC receiver adapter to call MS SQLServer stored procedure with parameters

    We are trying to use the JDBC receiver adapter to call a stored procedure in MS SQLServer with parameters.  According to the help documentation for the JDBC receiver adapter for action=EXECUTE,  "The elements within the stored procedure are interpreted as parameters" and "The parameter names must be identical to those of the stored procedure definition".  The parameters within a MS SQLServer stored procedure are required to begin with the '@' symbol.  The element names within a XML document i.e. used to call the stored procedure can not contain a special character such as '@' in the first position.  For all of the tests we have done where the parameter name in the XML document omits the '@' character, the parameters are not being received by the stored procedure.  Is there a way around this  problem?
    Thank you,
    Harold

    Hello Harold - I am facing the EXACTLY SAME problem.Pls let me know how did you fix this problem ?
    This is the message I am passing on to the DB SP:
    <?xml version="1.0" encoding="UTF-8"?>
    <MRIRequestInbound>
       <StatementName>
          <prc_FC_InsertStagingJournalEntries action="EXECUTE"/>
          <JournalData isInput="true" type="STRING">
    <NewDataSet><Table ITEM = "" ENTITYID = "" PERIOD = "" ACCTNUM = "" DEPARTMENT = "" JOBCODE = "" AMT = "" REF = "" DESCRPN = "" ENTRDATE = "" BASIS = " " BALFOR = "N" REQUESTNUM = "" ACCTNAME = "" TYPE = "" DESCRPTN = "" GDEP_DESCRPN = "" GJOB_DESCRPTN = "" JOBTYPE = ""  /></NewDataSet>
    </JournalData>
       </StatementName>
    </MRIRequestInbound>
    Out of which,
    <NewDataSet> tag contains the value of the parameter in the SP. So, my value to the SP's parameter is :
    <NewDataSet><Table ITEM = "" ENTITYID = "" PERIOD = "" ACCTNUM = "" DEPARTMENT = "" JOBCODE = "" AMT = "" REF = "" DESCRPN = "" ENTRDATE = "" BASIS = " " BALFOR = "N" REQUESTNUM = "" ACCTNAME = "" TYPE = "" DESCRPTN = "" GDEP_DESCRPN = "" GJOB_DESCRPTN = "" JOBTYPE = ""  /></NewDataSet>
    Any clue ?
    Cheers,
    Amrish.

  • How to modify oracle stored procedure for JDBC Receiver Adapter?

    Hi all.
    This is Urgent.
    Scenario is
      SELECT a TABLE with procedure and update column with it,
      then send data to SAP System with RFC Adapter.
    When I executed a sync bpm, scenario was finished internal error.
    Pls, let me know how to correct procedure using JDBC Receiver Adapter?
    Regrds all.
    Procedure Code -
    SET SERVEROUTPUT ON
    CREATE OR REPLACE PROCEDURE zwtn2
    IS
       v_seller_company      wtnivhd.seller_company%TYPE;
       v_invoice_no      wtnivhd.invoice_no%TYPE;
       v_report_date     wtnivhd.report_date%TYPE;
       v_customs_date     wtnivhd.customs_date%TYPE;
       v_ap_post_date     wtnivhd.ap_post_date%TYPE;
       v_gr_date          wtnivhd.gr_date%TYPE;
    CURSOR l_cursor IS
       SELECT seller_company,
              invoice_no,
              report_date,
              customs_date,
              ap_post_date,
              gr_date
         FROM wtnivhd
        WHERE wtn_send_flag = 'N'
          AND rownum < 31
    FOR UPDATE;
    BEGIN
       OPEN l_cursor;
       LOOP
         FETCH l_cursor
          INTO v_seller_company,
               v_invoice_no,
               v_report_date,
               v_customs_date,
               v_ap_post_date,
               v_gr_date;
         EXIT WHEN l_cursor%NOTFOUND;
         UPDATE wtnivhd
            SET wtn_send_flag = 'Y' 
           WHERE CURRENT OF l_cursor;
       END LOOP;
    CLOSE l_cursor;
    END zwtn2;

    Hi Alex,
    plz have a look to Runtime Workbench / Adapter Monitoring to find an error message.
    Regards,
    Udo

  • Alerts for JDBC Receiver Adapter

    Hi ,
    I am using JDBC receiver adapter. I have configured the alert category and Alert rules. Alerts are getting for Mapping etc.
    When ever error occured in the SQL server whether its firewall issue or some other issue. The alerts are not created. Instead I can see the error message in RWB Message monitoring and communicaton channel monitoring.
    Please let me know How can raise alerts if the error occured at the JDBC receiver side.
    Thanks in advance,
    Kevin

    Hi Kevin,
    Probabaly the alert rule did not capture the error in the adapter engine.
    The filter for sender and receiver interface details in the alert rule can cause this issue depending on when and how the error occured. Can you create an alert rule with * for all entries, for adapter engine and check?
    Also do NOT check the option "suppress multiple alerts from this rule" because it will prevent subsequent alerts from this rule, if there is already one and not yet confirmed.
    Further please check the alerts in SALRT table in se16 if its created properly or via transaction ALRTDISP.
    Please use the report SXMSALERT_LOGREADER for troubleshooting and checking the alert logs.
    Hope this helps.
    Regards,
    Francis

  • Delay in JDBC Receive Adapter

    Hi Everyone.
    I have an asynchronous scenario, RFC -> PI -> JDBC (Oracle DB)... This does an UPDATE in each message... When try to process 400 message the time of execution in the DB takes 2 minutes. For the client, this time is too long, but I've done everything and the time does not improve.
    This is the message:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:SQLString xmlns:ns1="urn:envioinventario:sap:seus">
    <Statement>
    <Inventario action="SQL_DML">
    <access>UPDATE Inventario SET CAN = 65.0, CAN_CD = 876.9 WHERE C_EMP = &apos;JA&apos; AND BOD = &apos;72&apos; AND COD = &apos;T9876&apos;</access>
    </Inventario>
    </Statement>
    </ns1:SQLString>
    And this is the configuration of the cc:
    Please, I need help, I don't know what else to do.
    Thank you so much.
    CRISTINA M. H.

    Hi Cristina,
    the below blogs might be helpful to increase hte performance of scenario
    XI/PI File and JDBC Receiver Adapter performance and availability improvements
    JDBC Receiver scenarios best practices - How to handle High volume load-Stored procedure design-Part5
    Decoding Max Concurrency ,poolWaitTime ,Driver properties in JDBC receiver Adapter Configuration
    regards,
    Harish

  • Error while updating database using jdbc receiver adapter

    Hi All,
    I am trying to update a single record using jdbc receiver adapter.
    This is my the message that is getting created..
    <?xml version="1.0" encoding="UTF-8" ?>
    - <ns0:Data xmlns:ns0="urn:Test">
    - <STATEMENT>
    - <TABLENAME ACTION="UPDATE_INSERT">
      <TABLE>ORDERS</TABLE>
    - <ACCESS>
      <OrderID>99999</OrderID>
      <CustomerID>VICTE</CustomerID>
      <EmployeeID>3</EmployeeID>
      <ShipAddress>VICTE</ShipAddress>
      </ACCESS>
    - <KEY>
      <OrderID compareOperation="EQ">99999</OrderID>
      <ShipAddress compareOperation="EQ">VICTE</ShipAddress>
      </KEY>
      </TABLENAME>
      </STATEMENT>
      </ns0:Data>
    But in Adapter Monitoring i am getting the following error..
    <i>Error while parsing or executing XML-SQL document: Error processing request in sax parser: Error when executing statement for table/stored proc. 'ORDERS' (structure 'STATEMENT'): java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near 'VICTE'.</i>
    Regards,
    Rahul

    Rahul,
    > In this case i believe the interface has to be synch.
    > So what will the response message type be like..
    Not necessary. UPDATE can be asynch as well.
    Can you turn the trace on like pointed by Michal and then you can see the Query in the Audit Log of the adapter montioring. Try to execute the same query from your DB Client like TOAD and see what is the Syntax error you are getiing.!
    The problem looks like some field has some dataype / column name mismatch.
    Regards
    Bhavesh

  • Jdbc receiver adapter

    Hi all,
    I want to insert data into two tables and want to get data from one of those tables(using SELECT in the attribute 'action') after they are inserted with the data.
    So how should be my receiver jdbc datatype structure.
    Can anybody please tell me?
    Thanks & Regards
    Radhika.

    Check this  blog for Synhronous select of data froma Database,
    /people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
    /people/jegathees.waran/blog/2007/03/02/oracle-table-functions-and-jdbc-sender-adapter
    Please see the below URL for logic.
    http://www.flickr.com/photos/8764045@N06/549186611/
    http://www.flickr.com/photos/8764045@N06/549186651/
    hope it will help u ..

  • JDBC Receiver Adapter -- Synch Select. ERROR

    Hello,
    We have implemented the scenario described by Bhavesh Kantilal in blog 3928:
    JDBC Receiver Adapter -- Synchronous Select – Step by Step 
    /people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
    but modified to our requirements.
    An Idoc is coming in, mapped to a sync receiver jdbc as described to collect data from a jdbc table.
    Result when connecting the oracle database with the jdbc receiver adapter:
    Error processing request in sax parser: Error when executing statement for table/stored proc. 'T_ST_MAINDRIVER' (structure 'STATEMENT'): java.sql.SQLException: ORA-00942: table or view does not exist
    Oh, like to complete the information by the payload from the jdbc rec. connect:
    <?xml version="1.0" encoding="UTF-8" ?>
    - <ns0:MT_JDBC_LOOPUP_ID xmlns:ns0="http://www.xxx.org/excel">
    - <STATEMENT>
    - <TABLENAME ACTION="SELECT">
      <TABLE>T_ST_MAINDRIVER</TABLE>
      <ACCESS />
    - <KEY>
      <MAINDRIVER compareOperation="=">Optomechanical</MAINDRIVER>
      </KEY>
      </TABLENAME>
      </STATEMENT>
      </ns0:MT_JDBC_LOOPUP_ID>
    The table exists on the database. So, what is our mistake? Do you have any ideas?
    Best regards
    Dirk
    Message was edited by:
            Dirk Meinhard
    Message was edited by:
            Dirk Meinhard

    Hi Anil,
    I am back on my JDBC problem and I am one step further!
    Thank you for this hint. Looks like this is the solution.
    So I like to add my next question !
    My new error is resulting from my query command.
    I have set "=" to find a specific entry as compare operation.
    Error when executing statement for table/stored proc. 'IRIS.T_ST_MAINDRIVER' (structure 'STATEMENT'): java.sql.SQLException: FATAL ERROR document format in structure 'TABLENAME': unexpected value '=' for attribute 'compare' found
    Looks like this is not ok .
    This is my xml of this query:
    <ns0:MT_JDBC_LOOPUP_ID xmlns:ns0="http://www.xxx.org/excel">
       <STATEMENT>
          <TABLENAME ACTION="SELECT">
             <TABLE>IRIS.T_ST_MAINDRIVER</TABLE>
             <ACCESS/>
             <KEY>
                <MAINDRIVER compareOperation="=">Optomechanical</MAINDRIVER>
             </KEY>
          </TABLENAME>
       </STATEMENT>
    </ns0:MT_JDBC_LOOPUP_ID>
    Can you, or anybody else, give the helping idea?
    regards
    Dirk

  • JDBC Receiver adapter-java.sql.SQLException: ORA-00904: "BATCH_ID": invalid

    Hi
    I am trying insert rows in Oracle database using JDBC receiver adapter setup in PI 7.1. However this receiver adapter is throwing following exception.
    Delivering the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'PRADEEP_OTC_ORDERS' (structure 'statement'): java.sql.SQLException: ORA-00904: "BATCH_ID": invalid identifier .
    <?xml version="1.0" encoding="UTF-8" ?>
    <ns0:mt_sql_writer xmlns:ns0="http://rdbms_poc">
    <statement>
         <dbtablename action="INSERT">
                <table>PRADEEP_OTC_ORDERS</table>
              <access>
                     <order_id>19126</order_id>
                     <version>1</version>
                     <batch_id>132</batch_id>
                </access>
           </dbtablename>
    </statement>
    </ns0:mt_sql_writer>
    PRADEEP_OTC_ORDERS table has just 3 columns as specified the access segment. However I stil get this ORA-00904 error message.
    Any idea on what could be wrong.?
    Thanks
    -Pradeep

    Hi All,
    Thanks a lot for responding...
    I verified the table structure, table just contains those 3 coulms all varchar type.
    I modified the column name as well, But was still getting ORA-00904. Then I went directly to the the database and executed below insert statement,
    insert into PRADEEP_OTC_ORDERS (mps_order_id, mps_version,mps_batch_id) Values(1,2,3)
    I got exact SQL Error: ORA-00904: "MPS_BATCH_ID": invalid identifier.
    So ISAP JDBC adapter is not enclosing the string values in quotes.
    SAP documentation says it puts quotes for values and treats everything as string(text).
    Anybody has any idea, why JDBC receiver adapter not enclosing the values in quotes?
    Thanks
    -Pradeep

  • JDBC Receiver Adapter Error

    Hi All,
    I am executing SP by using JDBC Receiver Adapter.
    My strcture is follows
    <STATEMENT2>
    <SP_CREATE_T_BATCH action="EXECUTE">
    <spName type="VARCHAR">SP_CREATE_T_BATCH</spName>
    <IN_Control_Recipe hasQuot="No" type="Integer">100000000001723850</IN_Control_Recipe>
    </SP_CREATE_T_BATCH>
    </STATEMENT2>
    The below error I am getting
    Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'SP_CREATE_T_BATCH' (structure 'STATEMENT2'): java.lang.NumberFormatException: For input string: "100000000001723850"
    Any help on this

    Hi Ram,
    Since you mentioned that your SP has one input parameter and one output parameter, the structure of the XML message at the JDBC receiver side should be:
    <STATEMENT2>
    <SP_CREATE_T_BATCH action="EXECUTE">
    <IN_Control_Recipe isInput="true" hasQuot="No" type="BIGINT">100000000001723850</IN_Control_Recipe>
    <Output_Parameter isOutput="true" type="SQLDataType"></Output_Parameter>
    </SP_CREATE_T_BATCH>
    </STATEMENT2>
    Here, i have assumed the following:
    SP_CREATE_T_BATCH   - The name of the Stored Procedure to be executed
    IN_Control_Recipe - Input parameter of the SP and its SQLDataType is BIGINT as suggested by Stefan.
    Output_Parameter - Output parameter of the SP. You may enter the SQL data type as per the output of your Stored Procedure.
    The following SQL data types are supported:
    INTEGER, BIT, TINYINT, SMALLINT, BIGINT, FLOAT, REAL, DOUBLE, NUMERIC, DECIMAL, CHAR, VARCHAR, STRING, LONGVARCHAR, DATE, TIME, TIMESTAMP, BINARY, VARBINARY, LONGVARBINARY, BLOB (input and output),CLOB (input and output), CURSOR (output; only in conjunction with the Oracle JDBC driver).
    Hope this will surely solve your problem.
    Regards, Gaurav.

  • JDBC Receiver Adapter - Call Stored Procedure

    Hi,
    I am using a JDBC receiver adapter to call a stored procedure in oracle.
    My target structure looks like:-
    <STATEMENT>
    <storedProcedureName action="EXECUTE">
    <table>realStoredProcedureName</table>
    <serialDate hasQuot="NO" isInputType="true" type="date">TO_DATE('07-15-2008 08:00:11','MM-DD-YYYY HH24:MI:SS')</serialDate>
    <serialNo isInputType="true" type="NUMERIC">123456</serialNo>
    </storedProcedureName>
    </STATEMENT>
    The storedprocedure takes two input values and has one output value.
    The first parameter of the stored procedure is serialDate and the second input parameter is serialNo.
    I am getting an exception:-
    <SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'storedProcedureName' (structure 'STATEMENT'): java.lang.NumberFormatException: For input string: "TO_DATE('07"</SAP:AdditionalText>
    Any ideas how to fix this issue.
    Thanks.
    Krishnan

    Hi Krishnan,
    <STATEMENT>
    <storedProcedureName action="EXECUTE">
    <table>realStoredProcedureName</table>
    <serialDate hasQuot="NO" isInputType="true" type="date">TO_DATE('07-15-2008 08:00:11','MM-DD-YYYY HH24:MI:SS')</serialDate>
    <serialNo isInputType="true" type="NUMERIC">123456</serialNo>
    </storedProcedureName>
    </STATEMENT>
    The storedprocedure takes two input values and has one output value.
    The first parameter of the stored procedure is serialDate and the second input parameter is serialNo.
    I am getting an exception:-
    <SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'storedProcedureName' (structure 'STATEMENT'): java.lang.NumberFormatException: For input string: "TO_DATE('07"</SAP:AdditionalText>
    In the XML structure you cannot use TO_DATE function . Please pass the DATE in the correct format which the Stored procedure can accept .  Get the out put what you expected from TO_DATE function and use that value in the structure.
    Regards,
    Kishore

  • JDBC Receiver Adapter:Incorrect syntax near the keyword 'FROM'

    Hi All,
    I'm trying to get data from an SQL 2005 server using synchronous JDBC receiver adapter. I'm using PI 7.0. My outgoing message is as follows:
      <?xml version="1.0" encoding="UTF-8" ?>
    - <ns0:MT_IZIN_YUKU_REQ xmlns:ns0="http://holding.com/brd/">
    - <STATEMENT>
    - <ECZ_IZIN_YUKU action="SELECT">
      <table>ECZ_IZIN_YUKU</table>
      <access />
    - <key>
      <iy_yil compareOperation="GT">1900</iy_yil>
      </key>
      </ECZ_IZIN_YUKU>
      </STATEMENT>
      </ns0:MT_IZIN_YUKU_REQ>
    I've found the following log in the trace file:
    #1.5#0014C23BCFC900630000003D000013B000042740B0A858B1#1169058702046#/Applications/ExchangeInfrastructure/AdapterFramework/Services/ADAPTER/ADMIN/JDBC#sap.com/com.sap.aii.af.app#com.sap.aii.adapter.jdbc.XI2JDBC.onInternalMessageBinary(Message)#J2EE_GUEST#0####fa10f5f0a65811db84410014c23bcfc9#XI XI2JDBC[CC_JDBC_RECI_BRD_TO_BHT/HUMANIST/]_2574##0#0#Error#1#com.sap.aii.adapter.jdbc.XI2JDBC#Plain###Error processing request, rollback: Error processing request in sax parser: Error when executing statement for table/stored proc. 'ECZ_IZIN_YUKU' (structure 'STATEMENT'): com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near the keyword 'FROM'.#
    Thanks a lot..

    Hi,
    Make sure the XML structure for your SQL statement is correct. Include the all the fields in the structure of XML.
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_IZIN_YUKU_REQ xmlns:ns0="http://holding.com/brd/">
    <STATEMENT>
              <TECZ_IZIN_YUKU ACTION="SELECT">
                     <TABLE>ECZ_IZIN_YUKU</TABLE>
                              <ACCESS>
                                   <EMPNO></EMPNO>
                                   <NAME></NAME>
                               </ACCESS>
                                 <KEY>
                                       <iy_yil compareOperation="GT">1900</iy_yil>
                                 </KEY>
    </TABLENAME>
    </STATEMENT>
    </ns0:MT_IZIN_YUKU_REQ>
    Best Regards

Maybe you are looking for