SQL statement in JDBC

Hi
Following statements are creating a Result Set which has the records for the "begin date" and "end date" only where as I want all the records between the specified dates. How can I do it?
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection
("jdbc:odbc:manoj","sa","");
     PreparedStatement stat=con.prepareStatement("select * from prodstock where Product=? and StkDate in (?,?)");
     stat.setString(1,prdt);
     stat.setString(2,fromdate);
     stat.setString(3,todate);
     ResultSet rs=stat.executeQuery();
need help!!!
Shailesh

("select *
from prodstock where Product=? and StkDate in
(?,?)");Oh, you're close! It should be:
[...] StkDate between ? and ? [...]

Similar Messages

  • Where to see generated SQL statement from jdbc adapter?

    Hi everybody,
    where can I see the generated SQL statement from JDBC adapter?
    Regards Mario

    Yes and True lterally means the same, but alas XI does not understand literature..
    Just checked the note as well, as you are correct!
    Regards
    Bhavesh

  • How to use Native SQL statement in JDBC receiver interface

    Dear All,
    Can any one please help us in using Native SQL statement in a JDBC receiver channel. The reason why I need to use Native SQL statement instead of standard XML structure is that I need to execute a dynamic SQL query in third party database system lke:-
    Select Field1 Field2 from TABLE Where Field3 like "%Name'
    I expect the the response in the form of XML file which I can pick up using synchornous interface as mentioned on help.sap.com:-
    http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
    The value for %Name can change dynamically according to the transaction and hence cannot be inluded as a KEY element in standard XLM structure,
    Hence I need to know:-
    1. What message mapping I should use in case if I have to use Native SQL statement.
    2.What operation mapping I should use in case if I have to use Native SQL statement.
    If guess correclty I may have to use Java mapping to do the above activities. Hence I want to know
    3 .How do to go about it to do the Java mapping.
    Thanks
    Ameet

    >
    Ameet Deshpande wrote:
    > Dear All,
    >
    > Can any one please help us in using Native SQL statement in a JDBC receiver channel. The reason why I need to use Native SQL statement instead of standard XML structure is that I need to execute a dynamic SQL query in third party database system lke:-
    >
    > "
    > Select Field1 Field2 from TABLE Where Field3 like "%Name'
    > "
    > I expect the the response in the form of XML file which I can pick up using synchornous interface as mentioned on help.sap.com:-
    >
    > http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
    > http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
    >
    > The value for %Name can change dynamically according to the transaction and hence cannot be inluded as a KEY element in standard XLM structure,
    >
    > Hence I need to know:-
    >
    > 1. What message mapping I should use in case if I have to use Native SQL statement.
    > 2.What operation mapping I should use in case if I have to use Native SQL statement.
    > If guess correclty I may have to use Java mapping to do the above activities. Hence I want to know
    > 3 .How do to go about it to do the Java mapping.
    >
    > Thanks
    > Ameet
    You can use a stored procedure, and call it from jdbc receiver adapter.
    I also solve this issue, with a DBLookup in message mapping. You can refer to my blog, and this usefull 3d:
    http://simonlesflex.wordpress.com/2010/12/07/pi-oracle-dblookup/
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler

  • Execute stored-prozedure in sql-statement in jdbc-adapter for sender

    Hello,
    in the sql-statement i call a stored procedure which makes following:
    - doing a selcet
    - update one field
    - give a recordset back
    In the update-field i write:
    But in the adapter monitoring i become a sql-exception:
    Error: SQLException during query 'EXECUTE st_enum_EAI_lokation': java.sql.SQLException: [SQLServer 2000 Driver for JDBC]No ResultSet set was produced.
    I´m using sql-server.
    So there is no resultset coming back...
    The reason for the stored-procedure is that it is not allowed to make changes in a productive data-base directly by an update.
    What´s the problem?
    Thanks in advance,
    Frank

    Currently, the jdbc sender adapter cannot execute Oracle's stored procedure.  Oracle's stored procedure cannot return a resultset, which is required by the jdbc sender adapter.
    An adapter user-module is available for a sender adapter to execute Oracle's stored procedure.
    If you are interested, I can send it to you.
    Regards

  • Update SQL statement in JDBC sender (system fields)

    All,
      Is it possible to update more than 1 field via the update sql statement ?
      Also, is it possible to use system fields ? 
      Something like this
      UPDATE database.table SET processed='Y', date = sy-datum
    Regards, Michel

    Hi
    use sysdate as suggested above
    Check your  generated SQL query format is correct
    At runtime you can find the genereated sql statements by doing configuraitons in Receiver JDBC adapter.
    In the JDBC Receiver adapter you have the Advanced Properties .
    Over there enter the following
    left column logSQLStatement
    right column true
    To see the query created ..
    Login to adapter monitoring ..select the relevant jdbc adapter.
    Now when any message is processed by the jdbc adapter in adapter monitoring at that time you will see a message link. When you click on that link a new window will open. In that window if you click on page down you will get to see the sql statement generated by the jdbc adapter.

  • Buffer size for SQL statement using JDBC calls

    I need to find out the buffer size for SQL statements in jave/JDBC because I need to insert or update a field that could be up to 4KB in size.

    I'm not sure that I follow the question; I'm not sure which buffer size you're referring to.
    If you have a field that can store up to 4k worth of data, you would create a VARCHAR2(4000) column in the Oracle database (assuming it is character data) or a BLOB column (if the data is binary). Either of those two fields can be populated from JDBC.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • SQL Statement on JDBC Adapter

    Hi all,
    how can I see the SQL Statement which is made by the JDBC Adapter.
    I have createt the XML Structure, but I want to know how PI (7.11) transformed the XML to SQL.
    How can I trace the JDBC Adapter? Which configuration is neccessary? Where can I find the trace?
    Thanks very much for your help!
    Jürgen

    Hi,
    this is my Auditlog
    Audit-Protokoll für Message: caded0e4-b287-1def-92a9-907432c01001
    Zeitstempel Typ Beschreibung
    2010-04-16 13:38:02 Information The message was successfully received by the messaging system. Protocol: XI URL: http://serv3709:52800/MessagingSystem/receive/AFW/XI Credential (User): PIISUSER
    2010-04-16 13:38:02 Information Using connection JDBC_http://sap.com/xi/XI/System. Trying to put the message into the request queue.
    2010-04-16 13:38:02 Information Message successfully put into the queue.
    2010-04-16 13:38:02 Information The message was successfully retrieved from the request queue.
    2010-04-16 13:38:02 Information The message status was set to DLNG.
    2010-04-16 13:38:02 Information Delivering to channel: test_etl
    2010-04-16 13:38:02 Information JDBC Adapter Receiver processing started, required QoS BestEffort
    2010-04-16 13:38:02 Information JDBC Adapter Receiver Channel test_etl:  processing started; party   / service E_DWH.
    2010-04-16 13:38:02 Information IS_RUN.MAP_SYS_LADELAUF_START.MAIN
    2010-04-16 13:38:02 Information Database request processed successfully.
    2010-04-16 13:38:02 Information The message was successfully delivered to the application using connection JDBC_http://sap.com/xi/XI/System.
    2010-04-16 13:38:02 Information The message status was set to DLVD.

  • Using SQL statements with JDBC

    does anyone know if JDBC supports functions like MAX?
    how abt a method to find out if a ResultSet is empty?
    thanks appreciate any kinda help
    meidis

    wgower said
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("select * from titles");
    if(rs == null)
    system.out.println("No records in this resultset");I am pretty sure that is incorrect.
    A statement always returns a result set, unless an exception occurs.
    This should do it
      Statement stmt = con.createStatement();
      ResultSet rs = stmt.executeQuery("select * from titles");
      int i = 0;
      while(rs.next()) i++;
      if (i == 0)
        System.out.println("no results");
      rs.close();
      con.close();
    . Or even better
      Statement stmt = con.createStatement();
      ResultSet rs = stmt.executeQuery("select count(*) from titles");
      int i = 0;
      if (rs.next())
         i = rs.getInt(1);
      if (i == 0)
        System.out.println("no results");
      rs.close();
      con.close();
    . ==================================
    JDBC doesn't really support MAX. JDBC is an interface to databases (data sources.) JDBC just passes what you give it along to the driver/database.

  • Multiple SQL statements from JDBC

    Dear All,
    We are working on R/3- >XI->JDBC scenario. We have sender as Proxy which sends some data to XI which needs to be Updated in multiple database tables in oracle. We have few Insert,Update and Delete Query to be

    Hi
    yes this can be done by using the concept IDOC to JDBC
    ALe settings for thi s are :
    Steps for XI
    Step 1)
    Goto SM59.
    Create new RFC destination of type 3(Abap connection).
    Give a suitable name and description.
    Give the Ip address of the R3 system.
    Give the system number.
    Give the gateway host name and gateway service (3300 + system number).
    Go to the logon security tab.
    Give the lang, client, username and password.
    Test connection and remote logon.
    Step 2)
    Goto IDX1.
    Create a new port.
    Give the port name.
    Give the client number for the R3 system.
    Select the created Rfc Destination.
    Step 3)
    Goto IDX2
    Create a new Meta data.
    Give the Idoc type.
    Select the created port.
    Steps for R3.
    Step 1)
    Goto SM59.
    Create new RFC destination of type 3(Abap connection).
    Give a suitable name and description.
    Give the Ip address of the XI system.
    Give the system number.
    Give the gateway host name and gateway service (3300 + system number).
    Go to the logon security tab.
    Give the lang, client, username and password.
    Test connection and remote logon.
    Step 2)
    Goto WE21.
    Create a port under transactional RFC.(R3->XI)
    Designate the RFC destination created in prev step.
    Step 3)
    Goto SALE.
    Basic settings->Logical Systems->Define logical system.
    Create two logical systems(one for XI and the other for R3)
    Basic settings->Logical Systems->Assign logical system.
    Assign the R3 logical system to respective client.
    Step 4)
    Goto WE20.
    Partner type LS.
    Create two partner profile(one for XI the other for R3).
    Give the outbound or inbound message type based on the direction.
    Step 5)
    Not mandatory.
    Goto BD64.
    Click on Create model view.
    Add message type.
    Step 6)
    Goto WE19
    Give the basic type and execute.
    fill in the required fields.
    Goto IDOC->edit control records.
    Give the following values.(Receiver port,partner no.,part type and sender Partner no. and type)
    Click outbound processing.
    Step 7)
    Go to SM58
    if there are any messages then there is some error in execution.
    Goto WE02.
    Check the status of the IDOC.
    Goto WE47.
    TO decode the status code.
    BD87 to check the status of IDOC.
    In case if not authorized then go to the target system and check in SU53, see for the missing object
    and assign it to the user.
    for scenario reffer link
    Configuring JDBC Connector Service To Perform Database Lookups
    http://searchsap.techtarget.com/tip/0,289483,sid21_gci1246926,00.html
    Configuration of JDBC Adapter for SQL Server
    JDBC Driver = com.microsoft.jdbc.sqlserver.SQLServerDriver
    Connection = jdbc:microsoft:sqlserver://hostname:<port>;DatabaseName=<DBName>
    UserID and Password
    Configuring the Receiver JDBC Adapter
    http://help.sap.com/saphelp_nw2004s/helpdata/en/b0/676b3c255b1475e10000000a114084/content.htm
    hope this helps you
    Regard's
    Chetan Ahuja

  • Precompiled SQL statement at client side ? (JDBC)

    Hi,
    Will Oracle support precompiled SQL statement for jdbc client ?
    Thanks

    A pre-compiled SQL statement on the client side makes absolutely no sense. Let's say the statement refers to system object id 1234 - the EMP table. But in the meantime the EMP table has been dropped and re-created as an index organised table and is now object id 7890.
    What about issues like scope, cost-based optimisation, etc?
    It honestly does not make the slightest sense to even want such a "pre-compiled client SQL" feature.
    > hmm.... Is there anyway to return the compiled SQL
    from database ?
    Yes - that is exactly what a cursor handle is. You give the database a SQL statement. It parses that and returns a SQL (aka cursor) handle for you to use and re-use.
    The typical (stateful) client would use the following template:
    -- open a database connection (usually returns a connection/session handle)
    hConnection = open DBconnection(params)
    -- parse/prepare a SQL statement (returns a SQL/cursor handle)
    hSQL = parseSQL( hConnection, 'INSERT INTO foo VALUES( :0, :1 )' )
    -- reuse the SQL statement
    while (Some_Condition)
    loop
    Some_Processing()
    -- bind values to the SQL statement variables
    SQLBind( hSQL, '0', var1)
    SQLBind( hSQL, '1', var2)
    -- execute the statement (it is not compiled or parsed again by the database)
    ExecSQL( hSQL )
    endloop

  • SQL variable in jdbc

    I'd like to retrieve one result but I have to use @variable in sqls like below.
    1) select @variable := b_id from cp_contents_test where contentid = "8593B9B13A2105B5E252FB11F1FF0822";
    2) select cp_contents_test.b_id,cap_member.mem_name,cap_member.mem_email,ctg_no,
    title,subtitle,summary,keyword,description,imagelink,lname_0,lname_1,lname_2
    ,lurl_0,lurl_1,lurl_2, fname,fsize,down,point,creationDate,ip,hit
    from cp_contents_test,cap_member,links
    where cp_contents_test.mem_no=cap_member.mem_no
    and cp_contents_test.b_id = links.b_id
    and cp_contents_test.b_id=@variable;
    I just like to know how to use those two sql statements in jdbc...
    Is there any specific way to use a variable in jdbc?

    Is there any specific way to use a variable in jdbc?You can use a "?" as a placeholder for a bind variable. You can then use the setXXX methods in the PreparedStatement class to set the value. The same PreparedStatement can be reused by setting new parameter values and re-executing.
    public void runTest(Connection con, long[] ids) {
         PreparedStatement pstmt          = null;
         ResultSet rs               = null;
         long value               = 0;
         // Your SQL Statement
         String sql = "select column1 from table1 where column2 = ?";
         try {
              // Prepare it once
              pstmt = con.prepareStatement(sql);
              // Loop through your criteria...
              int size = ids.length;
              for (int i = 0; i < size; i++) {
                   // Set the parameter value to the current criteria
                   pstmt.setLong(1, ids);
                   // (Re-)Execute the Query
                   rs = pstmt.executeQuery();
                   // Loop through the returned ResultSet...
                   while (rs.next()) {
                        // and get the values
                        value = rs.getLong(1);
                        // Do something with value...
         } catch (SQLException) {
              // Handle Exception
         } finally {
              try {
                   rs.close();
              } catch (Exception e) {}
              try {
                   pstmt.close();
              } catch (Exception e) {}
    It appeared that you were trying to set a parameter as the result of one SQL statement for use in a 2nd SQL statement. You can take a result retrieved in Java in the manner above and feed it to a 2nd PreparedStatement created the same way. However, in the specific example you gave, it appears the 2 queries really could have just been one....The 2nd query could have had cp_contents_test.contentid = "...." in the where clause.

  • How to examine the generated SQL statement in Receiver JDBC Adapter

    I have been searching this forum how to display te generated sql statement (by the jdbc receiver adapter).
    The only suggestion is to use RWB, but I was unable to find any details about how to do so.
    Any help is appreciated

    Hi,
    To add, u can see the SQL Statements in Audit log of RWB.
    Select Message Monitoring-> Adapter Engine. choose ur entry and click on Details option button, u can see the SQL Statements in Audit Log.
    Regards,
    Sudharshan
    Message was edited by:
            Sudharshan Aravamudan

  • Xi JDBC Adapter - Query SQL Statement & Update SQL Statement

    Hi!
    I configure the JDBC adapter sender (XI) to take data from Oracle database.
    I set the Query and Update SQL Statement in the Processing parameters of the communication channel in this way:
    Query SQL Statement :
    SELECT * FROM XI_TABLE WHERE STATUS = 'WAIT' ORDER BY ROW_NUM
    Update SQL Statement :
    UPDATE XI_TABLE SET STATUS = 'DONE', DATE = SYSDATE WHERE STATUS = 'WAIT'
    My question is :
    If a new record with the field STATUS = 'WAIT' is added to the table (xi_table) during the time between the execution of the query statement and the start of the update statement, what will happen to that record during the update?
    There is a way to avoid the update of that record? or to pass to the update statement only the record selected in the query statement?
    Please, may you give me some example?
    Thanks,
    Francesco

    hi,
    did you check "Isolation Level for Transaction"
    for the sender jdbc adapter?
    http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm
    Regards,
    michal

  • Sender JDBC adapter -- Update SQL statement NOT work for the last record

    I'm trying to use SAP XI to send records from Oracle database to As/400 using JDBC adapter.  I've defined the communication channel for sender
    (1)  The "Query SQL statement"  = select  a_bgn_dt,  a_end_dt from  PX_PXXD WHERE NOT CU_ACTION_CD='P' 
    (2)   The "Update SQL statement"  = update PX_PXXD set CU_ACTION_CD='P'  WHERE NOT CU_ACTION_CD='P' 
    Supposed that 3 records were retrieved from (1) and successfully updated to AS/400 but only the first 2 records in Oracle database are updated according to (2)
    Any advise.
    Pansy

    Hi Pansy,
    You select and update query is looking like wrong
    kindly check below query,If you are using oracle
    (1) The "Query SQL statement" = select a_bgn_dt, a_end_dt from PX_PXXD WHERE CU_ACTION_CD !='P'
    (2) The "Update SQL statement" = update PX_PXXD set CU_ACTION_CD='P' WHERE  CU_ACTION_CD !='P'
    Thank you
    Sateesh

  • Sender JDBC adapter : Update SQL Statement : stored procedure

    Hi,
    Can we use a stored procedure in the sender jdbc adapter in 'Update SQL Statement'.
    The problem i am facing is like, we are selecting data from two tables in 'SQL statement for query' and then in 'Update SQL Statement' , we need to delete that data from these two tables.
    Please let me know if it is possible.
    Thanks,
    Rohit

    you can use a Stored procedure in the
    Query SQL Statement
    You have the following options:
    ·        Specify a valid SQL SELECT statement to select the data to be sent from the specified database.
    ·        Specify an SQL EXECUTE statement to execute a stored procedure, which contains exactly one SELECT statement.
    The expression must correspond to the SQL variant supported by the relevant JDBC driver. It can also contain table JOINs.
    so have your whole select and update as part of this single Stored procedure

Maybe you are looking for

  • HT1338 how do i tell what my operating system is?

    how do i tell what my operating system is?

  • Architecture Student In search of a perfect laptop

    This is a student of Architecture from India. Since new to the field, now i do not use the rendering and all too much but with the advancement in semester, I would be using rendering and stuff too much!! I sometimes might have to do small video editi

  • Issue with insatlling ODSEE 11.1.1.3.0 to manual path in Solaris 10

    Hey Guys So here is the scenario.. We want to install dsee7 to a specific folder. 1st we tried to use the pkg installer "ofm_odsee_pkg_sun_sparc_11.1.1.3.0_64_disk1_1of1.zip" but then realized we cannot change the package folder (defaults to /opt/SUN

  • Accessing an Rdb on VMS

    Hello, I wonder if you've got a clue or a link for me ... I'd like to access an Rdb 7.x DB on a VMS machine, which has SQL/Services installed. Well, no big deal, but the accessing machine should be Linux. I've seen unixODBC.org, but that's only the d

  • Problem in importing idoc structure into repository

    Hi experts, I am trying to import an IDOC structure (ORDRSP.ORDERS03) from an R/3 system into the repository. But I am getting the following error: "             **Ready for import** Import started... ORDRSP.ORDERS03:   + com.sap.aii.ibrep.sbeans.upl