Java SQL prepare statement bug?

Hi,
I got some problem...refer to the statement below the second parameter 'a b c', the value will be trim in the store procedure during runtime which become 'abc'.
java.sql.CallableStatement call = conn.prepareCall("{call usp_test '','a b c',?}");

Hi,
I able to solve the problem by changing the driver to JTDS but another problem arise.
Exception
=======
java.sql.SQLException: Output parameter not allowed as argument list prevents use of RPC.
Snipet of the Code
==============
java.sql.CallableStatement call = conn.prepareCall("{call usp_test '','a b c',?}");
call.registerOutParameter(1, java.sql.Types.VARCHAR);
call.setString(1, "My Client");
ResultSet result = call.executeQuery();
Thankx

Similar Messages

  • Java.sql.SQLException: Statement cache size has not been set

    All,
    I am trying to create a light weight SQL Layer.It uses JDBC to connect to the database via weblogic. When my application tries to connect to the database using JDBC alone (outside of weblogic) everything works fine. But when the application tries to go via weblogic I am able to run the Statement objects successfully but when I try to run PreparedStatements I get the following error:
    java.sql.SQLException: Statement cache size has not been set
    at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
    at weblogic.jdbc.rmi.internal.ConnectionImpl_weblogic_jdbc_wrapper_PoolConnection_oracle_jdbc_driver_OracleConnection_812_WLStub.prepareStatement(Unknown Source)
    i have checked the StatementCacheSize and it is 10. Is there any other setting that needs to be implemented for this to work? Has anybody seen this error before? Any help will be greatly appreciated.
    Thanks.

    Pooja Bamba wrote:
    I just noticed that I did not copy the jdbc log fully earlier. Here is the log:
    JDBC log stream started at Thu Jun 02 14:57:56 EDT 2005
    DriverManager.initialize: jdbc.drivers = null
    JDBC DriverManager initialized
    registerDriver: driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@12e0e2f]
    DriverManager.getDriver("jdbc:oracle:oci:@devatl")
    trying driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@12e0e2f]
    getDriver returning driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@12e0e2f]
    Oracle Jdbc tracing is not avaliable in a non-debug zip/jar file
    DriverManager.getDriver("jdbc:oracle:oci:@devatl")
    trying driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@12e0e2f]
    getDriver returning driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@12e0e2f]
    DriverManager.getDriver("jdbc:oracle:oci:@devatl")
    trying driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@12e0e2f]
    getDriver returning driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@12e0e2f]
    DriverManager.getDriver("jdbc:oracle:oci:@devatl")
    trying driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@12e0e2f]
    getDriver returning driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@12e0e2f]
    DriverManager.getDriver("jdbc:oracle:oci:@devatl")
    trying driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@12e0e2f]
    getDriver returning driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@12e0e2f]
    registerDriver: driver[className=weblogic.jdbc.jts.Driver,weblogic.jdbc.jts.Driver@c0a150]
    registerDriver: driver[className=weblogic.jdbc.pool.Driver,weblogic.jdbc.pool.Driver@17dff15]
    SQLException: SQLState(null) vendor code(17095)
    java.sql.SQLException: Statement cache size has not been set
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)Hi. Ok. This is an Oracle driver bug/problem. Please show me the pool's definition
    in the config.xml file. I'll bet you're defining the pool in an unusual way. Typically
    we don't want any driver-level pooling to be involved. It is superfluous to the functionality
    we provide, and can also conflict.
    Joe
         at oracle.jdbc.driver.OracleConnection.prepareCallWithKey(OracleConnection.java:1037)
         at weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_OracleConnection.prepareCallWithKey(Unknown Source)
         at weblogic.jdbc.rmi.internal.ConnectionImpl_weblogic_jdbc_wrapper_PoolConnection_oracle_jdbc_driver_OracleConnection.prepareCallWithKey(Unknown Source)
         at weblogic.jdbc.rmi.internal.ConnectionImpl_weblogic_jdbc_wrapper_PoolConnection_oracle_jdbc_driver_OracleConnection_WLSkel.invoke(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415)
         at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    SQLException: SQLState(null) vendor code(17095)

  • Java.sql.SQLException: Statement cancelled, probably by transaction timing

    Hi all,
    I have a problem with transaction handling over 2 applications. I have 2 EAR files (*A.ear* and B.ear) which are deployed on a WLS 12.1. The WLS contains a XA datasource which is connected to a Oracle XE database. Both applications are using the same datasource. The datasource is configured to use the driver oracle.jdbc.xa.client.OracleXADataSource.
    EAR A contains a Remote EJB which is is calling a local EJB. The local EJB calls a Remote EJB from EAR B.
    Here is an example how the code looks like:
    @Remote
    @Stateless(mappedName = "AnyRemote", name = "AnyRemote")
    public class AnyRemoteBean implements AnyRemote {
        @EJB
        private AnyLocal anyLocal;
        @Override
        public void doIt() {
            anyLocal.doSomething();
    @Local
    @Stateless(mappedName = "AnyLocal", name = "AnyLocal")
    public class AnyLocalBean implements AnyLocal {
        @PersistenceContext(unitName = "A")
        private EntityManager entityManager;
        @EJB(mappedName = "AnyCompositeService")
        private AnyCompositeService anyCompositeService;
        @Override
        @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
        public boolean doSomething() {
                try {
                     // do some stuff and save to database within another local EJB
                    anyCompositeService.doSomethingOnEAR_B();
                    return true;
                } catch (final AnyException e) {
                    LOGGER.error("doSomething failed", e);
                    return false;
        @Override
        @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
        public boolean stayOnEar_A() {
                // do some stuff and save to database within another local EJB
                return true;
    }AnyCompositeService located in EAR B looks like this:
    @Remote
    @Stateless(mappedName = "AnyCompositeService ", name = "AnyCompositeService ")
    public class AnyCompositeServiceBean implements AnyCompositeService {
        @Override
        public boolean doSomethingOnEAR_B() throws AnyException {
            // do some calls to some local EJBs and some other remote EJBs and save something to database
            return true;
    }In this process of EAR B I'm using the entitiy manager:
        @PersistenceContext(unitName = "B")
        private EntityManager entityManager;persistence.xml for EAR A looks like this
        <persistence-unit name="A" transaction-type="JTA">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <jta-data-source>MyDatasource</jta-data-source>
           <!-- some entities -->
            <properties>
                <property name="hibernate.transaction.jta.platform"
                    value="org.hibernate.service.jta.platform.internal.WeblogicJtaPlatform" />
                <property name="hibernate.max_fetch_depth" value="3" />
                <property name="hibernate.connection.characterEncoding" value="UTF-8" />
                <property name="hibernate.connection.charSet" value="UTF-8" />
                <property name="hibernate.connection.useUnicode" value="true" />
                <property name="hibernate.default_batch_fetch_size" value="20" />
            </properties>
        </persistence-unit>
    </persistence>persistence.xml for EAR B looks like this
        <persistence-unit name="B" transaction-type="JTA">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <jta-data-source>MyDatasource</jta-data-source>
           <!-- some entities -->
            <properties>
                <property name="hibernate.transaction.jta.platform"
                    value="org.hibernate.service.jta.platform.internal.WeblogicJtaPlatform" />
                <property name="hibernate.max_fetch_depth" value="3" />
                <property name="hibernate.connection.characterEncoding" value="UTF-8" />
                <property name="hibernate.connection.charSet" value="UTF-8" />
                <property name="hibernate.connection.useUnicode" value="true" />
                <property name="hibernate.default_batch_fetch_size" value="20" />
            </properties>
        </persistence-unit>
    </persistence>As you can see the method doSomething() defines the transaction attribute TransactionAttributeType.REQUIRES_NEW.
    When I execute AnyRemote.doIt() I get the following exception:
    Caused By: java.sql.SQLException: Statement cancelled, probably by transaction timing out
         at weblogic.jdbc.wrapper.Statement.postInvocationHandler(Statement.java:69)
         at weblogic.jdbc.wrapper.PreparedStatement_oracle_jdbc_driver_OraclePreparedStatementWrapper.clearBatch(Unknown Source)
         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:597)
         at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122)
         at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
         at $Proxy452.clearBatch(Unknown Source)
         at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.releaseStatements(AbstractBatchImpl.java:163)
         at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.release(AbstractBatchImpl.java:197)
         at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.close(JdbcCoordinatorImpl.java:139)
         at org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.close(TransactionCoordinatorImpl.java:276)
         at org.hibernate.internal.SessionImpl.close(SessionImpl.java:349)
         at org.hibernate.ejb.EntityManagerImpl.close(EntityManagerImpl.java:137)
         at weblogic.persistence.TransactionalEntityManagerProxyImpl.close(TransactionalEntityManagerProxyImpl.java:117)
         at weblogic.persistence.BasePersistenceContextProxyImpl$PersistenceContextCloser.afterCompletion(BasePersistenceContextProxyImpl.java:213)
         at weblogic.transaction.internal.ServerSCInfo.doAfterCompletion(ServerSCInfo.java:1068)
         at weblogic.transaction.internal.ServerSCInfo.callAfterCompletions(ServerSCInfo.java:1012)
         at weblogic.transaction.internal.ServerTransactionImpl.callAfterCompletions(ServerTransactionImpl.java:3074)
         at weblogic.transaction.internal.ServerTransactionImpl.afterRolledBackStateHousekeeping(ServerTransactionImpl.java:2954)
         at weblogic.transaction.internal.ServerTransactionImpl.setRolledBack(ServerTransactionImpl.java:2930)
         at weblogic.transaction.internal.ServerTransactionImpl.globalRetryRollback(ServerTransactionImpl.java:3172)
         at weblogic.transaction.internal.ServerTransactionImpl.globalRollback(ServerTransactionImpl.java:2920)
         at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:374)
         at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:268)
         at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:332)
         at weblogic.ejb.container.internal.BaseLocalObject.__WL_postInvokeTxRetry(BaseLocalObject.java:202)
         at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:44)As long as the process only calls EJBs from EAR A only there is no issue. But if the process calls the method doSomethingOnEAR_B() on EAR B the call fails with above exception. If the process throws AnyException the rollback takes place as expected for transaction in EAR B and EAR A.
    Does anybody know what is the issue here? Is there any configuration I have overseen?

    That is a WLS internal message. The statement did get cancelled,
    probably as a part of the process of rolling back the transaction it
    was involved in. If you don't find your core problem, open an
    Oracle support SR, and we could help debug this further.

  • Java.sql.SQLException: statement handle not executed

    hello,
    i am calling a stored procedure and its returns a REF CURSOR and i am getting intermittent exceptions below,
    org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not execute query; uncategorized SQLException for SQL [{call
    xxxx_pkg(?,?)}]; SQL state [99999]; error code [17144]; statement handle not executed; nested exception is java.sql.SQLException: statement handle not executed
    and
    org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not execute query; uncategorized SQLException for SQL [{call
    xxxx_pkg(?,?,?)}]; SQL state [99999]; error code [17009]; Closed Statement; nested exception is java.sql.SQLException: Closed Statement
    any clue what could be the issue,
    Regards
    GG

    its pretty simple have a java class calling hibernateTemplate's findByNamedQueryAndNamedParam method by passing the procedure name and binding parameters/values, and here is the stack
    org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not execute query; uncategorized SQLException for SQL [{call
    xxx_pkg(?,?)}]; SQL state [99999]; error code [17144]; statement handle not executed; nested exception is java.sql.SQLException: statement handle not executed
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
    at org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)
    at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:410)
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
    at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
    at org.springframework.orm.hibernate3.HibernateTemplate.findByNamedQueryAndNamedParam(HibernateTemplate.java:1006)
    Caused by: java.sql.SQLException: statement handle not executed
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:229)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:403)
    at oracle.jdbc.driver.T4CStatement.doDescribe(T4CStatement.java:701)
    at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3355)
    at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:2009)
    at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:494)
    at org.hibernate.type.StringType.get(StringType.java:18)
    at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
    at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154)
    at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2091)
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1380)
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1308)
    at org.hibernate.loader.Loader.getRow(Loader.java:1206)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:580)
    at org.hibernate.loader.Loader.doQuery(Loader.java:701)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
    at org.hibernate.loader.Loader.doList(Loader.java:2217)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2108)
    at org.hibernate.loader.Loader.list(Loader.java:2103)
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
    at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1696)
    at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
    at org.springframework.orm.hibernate3.HibernateTemplate$34.doInHibernate(HibernateTemplate.java:1015)
    at org.springframework.orm.hibernate3.HibernateTemplate$34.doInHibernate(HibernateTemplate.java:1)
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)

  • ODI Error: java.sql.SQLException: statement is not in batch mode

    Greetings Gurus!
    Would anybody know why changing a SQL view from
    AND hapf.attribute1 LIKE '%Active%'
    To
    AND (hapf.attribute1 LIKE '%Active%' or hapf.attribute1 = ‘Frozen’)
    cause ODI to fail?
    This is the error message from ODI:
    ODI-1228: Task SrcSet0 (Loading) fails on the target SUNOPSIS_ENGINE connection SUNOPSIS_MEMORY_ENGINE.
    Caused By: java.sql.SQLException: statement is not in batch mode
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
    at org.hsqldb.jdbc.Util.sqlExceptionSQL(Unknown Source)
    at org.hsqldb.jdbc.JDBCPreparedStatement.executeBatch(Unknown Source)
    at oracle.odi.runtime.agent.execution.sql.SQLCommand.end(SQLCommand.java:267)
    at oracle.odi.runtime.agent.execution.sql.SQLExecutor.endExecution(SQLExecutor.java:156)
    at oracle.odi.runtime.agent.execution.sql.SQLExecutor.endExecution(SQLExecutor.java:1)
    at oracle.odi.runtime.agent.execution.DataMovementTaskExecutionHandler.handleTask(DataMovementTaskExecutionHandler.java:113)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2913)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2625)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:558)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:464)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093)
    at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
    at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
    at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
    at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
    at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
    at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
    at java.lang.Thread.run(Thread.java:662)
    Caused by: org.hsqldb.HsqlException: statement is not in batch mode
    at org.hsqldb.error.Error.error(Unknown Source)
    at org.hsqldb.error.Error.error(Unknown Source)
    ... 19 more
    Thank you!
    Ray

    Looks like the single quotes around Frozen are not ascii single quotes. They seem to be a copy paste job from MSWord.
    It should be 'Frozen' and then you shouldnt have that issue
    >
    AND hapf.attribute1 LIKE '%Active%'
    To
    AND (hapf.attribute1 LIKE '%Active%' or hapf.attribute1 = ‘Frozen’)
    >
    Devil is in the details ;)

  • SQL Prepared Statement with a string parameter including a colon

    Hello everybody,
    I'm recently experiencing a problem using Prepared SQL Statements if one of the parameter is a string containing a ":" (colon).
    I'm able to insert a date (as a string) record using the format "hh:mm" into a MySQL database table but when I execute the query I cannot retrieve the record.
    Does anyone know any problem with ":" character?
    Replacing ":" with "." solves the problem...
    Thanks a lot.
    Edited by: 798883 on 29/09/2010 17:25

    Huh?
    One of the points in using PreparedStatements is that they handle the formatting for you. You shouldn't be setting dates with String values at all. Create a java.sql.Date (or timestamp or time as the case may be) and use the appropriate setXXX method of PreparedStatement. If you have String values then you can use SimpleDateFormat to parse them into dates.

  • Java.sql - Interface Statement

    Hi
    I'm new to Java and need help on the following code.
    statement.executeQuery("SELECT * From titles");when I executed the above code, it showed me the all the records from the title table. But I want to write an SQL query like this with executeQuery method ,
    statement.executeQuery("SELECT * from authors where firstName =    authorFirstName")authorFirstName is a variable and that value is obtained from user input, and I want to check if the value in the variable "authorFirstName" exists in the firstName column in the authors database.
    If I write the query in the command prompt(mySql), it will be - SELECT * from authors where firstName =   'tom';but how can I write this with the method executeQuery() giving the variable name authorFirstName instead of 'tom'?
    Thanks in advance
    Edited by: shana10 on May 8, 2009 3:14 AM

    Yes, definitely use a PreparedStatement.
    But to answer your confusion as to how to get a variable into that select string (if you weren't using a PS), you'd do it just like you put a variable into any other string:
    String query = "select * from foo where name = '" + name + "'";But don't do that. Use a PS and a ? parameter.

  • Deployment of Java application: prepared state

    Hello,
    Weblogic n00b here, so I apologise if this is a seemingly silly question.
    I am deploying a Java application onto Weblogic 11g (server version: 10.3.6.0) via the console, which works perfectly well with no problems.
    However, I now have a requirement to deploy the application onto the server but want to start it (i.e make it active) at a later date... possibly several days in the future.
    Deployment through the console means that the application is made active as soon as I click "Activate changes". Is there any way of completing a deployment so that the application is only "prepared", rather than "active"?
    Thanks for any assistance.

    Hi,
    One thing I would say that when you try to deploy the app and it directly moving into the Active state means that targeted server is already in running mode.
    Make sure that you try to stop the deployment archive when you dont required and it will move to Prepared mode when server is up and running and new state in server shutdown mode.
    Hope this will help you.
    **Note there is so such option for non-active mode deployment.
    Regards,
    Kal

  • SQL Prepared statement

    Hi
    public static List retrieveWorkForceListForEdit(Connection conn) throws SQLException {
    String sql =
    "SELECT DISTINCT SUBSTR(ABREV_CODE,4), ABREV_SUBGROUP, ABREV_GROUP, SYSTEM_READONLY_FLAG, ACTIVITY_ID FROM ABBREVIATION"
    + " WHERE ABREV_CODE LIKE '1NW%'"
    + " AND SUBSTR(ABREV_CODE, 4) <> '~'"
    + " AND ABREV_CODE NOT LIKE '%*'"
    + " ORDER BY 1";
    PreparedStatement ps = conn.prepareStatement(sql);
    //ps.setString(1, "1NW%");
    return executeQuery(ps, 1);
    can some one explain me in detail what does the above bit of code do..
    Thanks

    http://java.sun.com/docs/books/tutorial/jdbc/index.html

  • JBO-27122: SQL error during statement preparation IN OAF(java.sql.SQLException: ORA-01008: not all variables bound)

    Hi Friends,
    I have have extended CO where i have added dynamic where condition to VO,it's throwing error.
    Code added in controller :
    public class Custom_HomePageCO extends HomePageCO
      public Custom_HomePageCO()
    public void processRequest(OAPageContext pageContext,OAWebBean webBean)
      super.processRequest(pageContext,webBean);
      System.out.println("NewClase");
      OAApplicationModule am=pageContext.getApplicationModule(webBean);
      System.out.println(am);
      OAApplicationModule am1=(OAApplicationModule)am.findApplicationModule("TrackExpenseReportsAM");
    System.out.println(am1);
      OAViewObject vo=(OAViewObject)am1.findViewObject("TrackExpenseReportsVO");
      System.out.println(vo);
      vo.setWhereClause("REPORT_SUBMITTED_DATE is not null");
        vo.executeQuery();
    public void processFormRequest(OAPageContext pageContext,OAWebBean webBean)
      super.processFormRequest(pageContext,webBean);
    Error message:
    Exception Details.
    Error Details
           Logout
          Error Page
          Exception Details.
    oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation.  Statement: SELECT * FROM (SELECT
    AI.DESCRIPTION PURPOSE,
    AI.INVOICE_CURRENCY_CODE CURRENCY_CODE,
    AI.INVOICE_DATE REPORT_DATE,
    AERH.REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
    AI.INVOICE_NUM REPORT_NUMBER,
    TO_CHAR(decode(nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),
                     0, decode(AI.CANCELLED_DATE,
                                 null, APS.GROSS_AMOUNT,
                                 AERH.TOTAL),
                   nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0)) ,  
            FND_CURRENCY_CACHE.GET_FORMAT_MASK
            (AI.INVOICE_CURRENCY_CODE, 30)) ||' '|| AI.INVOICE_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
    TO_CHAR(decode(nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),
                     0, decode(AI.CANCELLED_DATE,
                                 null, APS.GROSS_AMOUNT,
                                 AERH.TOTAL),
                   nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0)) ,  
            FND_CURRENCY_CACHE.GET_FORMAT_MASK
            (AI.INVOICE_CURRENCY_CODE, 30))
    REPORT_TOTAL,
    P.PERSON_ID EMPLOYEE_ID,
    AERH.REPORT_HEADER_ID REPORT_HEADER_ID,
    P.FULL_NAME FULL_NAME ,
    DECODE(AI.CANCELLED_DATE,null,
                              nvl(aerh.expense_status_code, DECODE(APS.GROSS_AMOUNT ,0,'PAID',
                                    decode(AI.Payment_status_flag,'Y','PAID',
                                                            'N','INVOICED',
                                                            'P','PARPAID',NULL))),
                                            'CANCELLED') STATUS_CODE,
    AERH.source SOURCE,
    NULL CURRENT_APPROVER,
    ROUND(sysdate - AI.LAST_UPDATE_DATE) DAYS_SINCE_ACTIVITY,
    AERH.RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
    AERH.HOLDING_REPORT_HEADER_ID,
    AI.VENDOR_ID VENDOR_ID,
    AERH.AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
    AERH.AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,         
    'CurrentApproverName' CURRENT_APPROVER_SWITCHER,
    to_char(AERH.LAST_UPDATE_DATE, 'DD-MON-RRRR HH:MI:SS'),
    AI.INVOICE_ID INVOICE_ID
    FROM
           AK_WEB_USER_SEC_ATTR_VALUES A,
           PO_VENDORS PV,
           AP_INVOICES AI,
           AP_EXPENSE_REPORT_HEADERS AERH,
           PER_PEOPLE_X P,
           AP_PAYMENT_SCHEDULES APS
    WHERE  AI.INVOICE_ID= APS.INVOICE_ID
    AND    AI.INVOICE_ID = AERH.VOUCHNO(+)
    AND AI.INVOICE_TYPE_LOOKUP_CODE||'' = 'EXPENSE REPORT'
    AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID'
    AND PV.EMPLOYEE_ID = A.NUMBER_VALUE
    AND A.WEB_USER_ID = :1
    AND P.PERSON_ID = PV.EMPLOYEE_ID
    AND PV.VENDOR_ID = AI.VENDOR_ID
    AND DECODE (AI.PAYMENT_STATUS_FLAG,
             'Y', sysdate - AI.LAST_UPDATE_DATE,
            decode(APS.GROSS_AMOUNT , 0 ,sysdate - AI.LAST_UPDATE_DATE,0)
              )  <= 30
    AND (AERH.SOURCE <> 'Both Pay' OR AERH.REPORT_HEADER_ID IS NULL)       
    UNION
    SELECT
    AI.DESCRIPTION PURPOSE,
    AI.INVOICE_CURRENCY_CODE CURRENCY_CODE,
    AI.INVOICE_DATE REPORT_DATE,
    AERH.REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
    AI.INVOICE_NUM REPORT_NUMBER,
    TO_CHAR(decode(nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),
                     0, decode(AI.CANCELLED_DATE,
                                 null, APS.GROSS_AMOUNT,
                                 AERH.TOTAL),
                   nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0)) ,  
            FND_CURRENCY_CACHE.GET_FORMAT_MASK
            (AI.INVOICE_CURRENCY_CODE, 30)) ||' '|| AI.INVOICE_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
    TO_CHAR(decode(nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),
                     0, decode(AI.CANCELLED_DATE,
                                 null, APS.GROSS_AMOUNT,
                                 AERH.TOTAL),
                   nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0)),  
            FND_CURRENCY_CACHE.GET_FORMAT_MASK
            (AI.INVOICE_CURRENCY_CODE, 30))
    REPORT_TOTAL,
    P.PERSON_ID EMPLOYEE_ID,
    AERH.REPORT_HEADER_ID REPORT_HEADER_ID,
    P.FULL_NAME FULL_NAME ,
    DECODE(AI.CANCELLED_DATE,null,
                              nvl(aerh.expense_status_code, DECODE(APS.GROSS_AMOUNT ,0,'PAID',
                                    decode(AI.Payment_status_flag,'Y','PAID',
                                                            'N','INVOICED',
                                                            'P','PARPAID',NULL))),
                                            'CANCELLED') STATUS_CODE,
    AERH.source SOURCE,
    NULL CURRENT_APPROVER,
    ROUND(sysdate - AI.LAST_UPDATE_DATE) DAYS_SINCE_ACTIVITY,
    AERH.RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
    AERH.HOLDING_REPORT_HEADER_ID,
    AI.VENDOR_ID VENDOR_ID,
    AERH.AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
    AERH.AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,         
    'CurrentApproverName' CURRENT_APPROVER_SWITCHER,
    to_char(AERH.LAST_UPDATE_DATE, 'DD-MON-RRRR HH:MI:SS'),
    AI.INVOICE_ID INVOICE_ID
    FROM
           AK_WEB_USER_SEC_ATTR_VALUES A,
           PO_VENDORS PV,
           AP_INVOICES AI,
           AP_EXPENSE_REPORT_HEADERS AERH,
           PER_PEOPLE_X P,
           AP_PAYMENT_SCHEDULES APS
    WHERE  AI.INVOICE_ID= APS.INVOICE_ID
    AND    AI.INVOICE_ID = AERH.VOUCHNO(+)
    AND AI.INVOICE_TYPE_LOOKUP_CODE||'' in ('STANDARD','MIXED')
    AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID'
    AND AI.PAID_ON_BEHALF_EMPLOYEE_ID = A.NUMBER_VALUE
    AND A.WEB_USER_ID = :2
    AND P.PERSON_ID = AI.PAID_ON_BEHALF_EMPLOYEE_ID
    AND PV.VENDOR_ID = AI.VENDOR_ID
    AND DECODE (AI.PAYMENT_STATUS_FLAG,
             'Y', sysdate - AI.LAST_UPDATE_DATE,
            decode(APS.GROSS_AMOUNT , 0 ,sysdate - AI.LAST_UPDATE_DATE,0)
            ) <= 30
    AND (AERH.SOURCE <> 'Both Pay' OR AERH.REPORT_HEADER_ID IS NULL)            
    UNION ALL
    SELECT
    AERH.DESCRIPTION PURPOSE,
    AERH.DEFAULT_CURRENCY_CODE CURRENCY_CODE,
    AERH.WEEK_END_DATE REPORT_DATE,
    AERH.REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
    AERH.INVOICE_NUM REPORT_NUMBER,
    TO_CHAR(nvl(AERH.AMT_DUE_CCARD_COMPANY+AERH.AMT_DUE_EMPLOYEE+nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),AERH.TOTAL),FND_CURRENCY_CACHE.GET_FORMAT_MASK
      (AERH.DEFAULT_CURRENCY_CODE,30)) ||' '|| AERH.DEFAULT_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
    TO_CHAR(nvl(AERH.AMT_DUE_CCARD_COMPANY+AERH.AMT_DUE_EMPLOYEE+nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),AERH.TOTAL),FND_CURRENCY_CACHE.GET_FORMAT_MASK
      (AERH.DEFAULT_CURRENCY_CODE,30)) REPORT_TOTAL,
    PER_EMPLOYEE.PERSON_ID EMPLOYEE_ID,
    AERH.REPORT_HEADER_ID REPORT_HEADER_ID,
    PER_EMPLOYEE.FULL_NAME FULL_NAME,
    NVL(AERH.expense_status_code,
      AP_WEB_OA_ACTIVE_PKG.GetReportStatusCode(AERH.Source, AERH.Workflow_approved_flag,
      AERH.report_header_id, 'Y', 'N')) STATUS_CODE,
    AERH.source SOURCE,
    NVL (PER_APPROVER.full_name, AP_WEB_OA_ACTIVE_PKG.GetCurrentApprover(AERH.Source,
            AERH.Workflow_approved_flag, AERH.report_header_id, AERH.expense_status_code)) CURRENT_APPROVER,
    ROUND(NVL(sysdate - AERH.EXPENSE_LAST_STATUS_DATE,
              sysdate - AERH.LAST_UPDATE_DATE)) DAYS_SINCE_ACTIVITY,
    AERH.RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
    AERH.HOLDING_REPORT_HEADER_ID,
    0 VENDOR_ID,
    AERH.AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
    AERH.AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,  
    DECODE(AERH.expense_current_approver_id,
    -99999, 'AMEMultipleApprovers',
    decode(PER_APPROVER.full_name,
      null,'CurrentApproverName','AMESingleApprover')) CURRENT_APPROVER_SWITCHER,
    to_char(AERH.LAST_UPDATE_DATE, 'DD-MON-RRRR HH:MI:SS'),
    -1 INVOICE_ID
    FROM
           AK_WEB_USER_SEC_ATTR_VALUES A,
           AP_EXPENSE_REPORT_HEADERS AERH,
           PER_PEOPLE_X PER_EMPLOYEE,
           PER_PEOPLE_X PER_APPROVER
    WHERE  AERH.VOUCHNO +0 =0
    AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID'
    AND AERH.EMPLOYEE_ID = A.NUMBER_VALUE
    AND A.WEB_USER_ID = :3
    AND PER_EMPLOYEE.PERSON_ID = AERH.EMPLOYEE_ID
    AND (AERH.Source <> 'NonValidatedWebExpense'
         OR AERH.Workflow_approved_flag IS NULL)
    AND AERH.expense_current_approver_id = PER_APPROVER.person_id
    AND decode(AERH.total,0,ROUND(NVL(sysdate - AERH.EXPENSE_LAST_STATUS_DATE,sysdate - AERH.LAST_UPDATE_DATE)),30) <= 30
    AND AERH.SOURCE <> 'Both Pay'
    UNION
    SELECT
    AERH.DESCRIPTION PURPOSE,
    AERH.DEFAULT_CURRENCY_CODE CURRENCY_CODE,
    AERH.WEEK_END_DATE REPORT_DATE,
    AERH.REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
    AERH.INVOICE_NUM REPORT_NUMBER,
    TO_CHAR(nvl(AERH.AMT_DUE_CCARD_COMPANY+AERH.AMT_DUE_EMPLOYEE+nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),AERH.TOTAL),FND_CURRENCY_CACHE.GET_FORMAT_MASK
      (AERH.DEFAULT_CURRENCY_CODE,30)) ||' '|| AERH.DEFAULT_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
    TO_CHAR(nvl(AERH.AMT_DUE_CCARD_COMPANY+AERH.AMT_DUE_EMPLOYEE+nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),AERH.TOTAL),FND_CURRENCY_CACHE.GET_FORMAT_MASK
      (AERH.DEFAULT_CURRENCY_CODE,30)) REPORT_TOTAL,
    PER_EMPLOYEE.PERSON_ID EMPLOYEE_ID,
    AERH.REPORT_HEADER_ID REPORT_HEADER_ID,
    PER_EMPLOYEE.FULL_NAME FULL_NAME,
    NVL(AERH.expense_status_code,
      AP_WEB_OA_ACTIVE_PKG.GetReportStatusCode(AERH.Source, AERH.Workflow_approved_flag,
      AERH.report_header_id,'Y','N')) STATUS_CODE,
    AERH.source SOURCE,
    NVL (PER_APPROVER.full_name, AP_WEB_OA_ACTIVE_PKG.GetCurrentApprover(AERH.Source,
            AERH.Workflow_approved_flag, AERH.report_header_id, AERH.expense_status_code)) CURRENT_APPROVER,
    ROUND(NVL(sysdate - AERH.EXPENSE_LAST_STATUS_DATE,
              sysdate - AERH.LAST_UPDATE_DATE)) DAYS_SINCE_ACTIVITY,
    AERH.RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
    AERH.HOLDING_REPORT_HEADER_ID,
    0 VENDOR_ID,
    AERH.AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
    AERH.AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,  
    DECODE(AERH.expense_current_approver_id,
    -99999, 'AMEMultipleApprovers',
    decode(PER_APPROVER.full_name,
      null,'CurrentApproverName','AMESingleApprover')) CURRENT_APPROVER_SWITCHER,
    to_char(AERH.LAST_UPDATE_DATE, 'DD-MON-RRRR HH:MI:SS'),
    -1 INVOICE_ID
    FROM
           AK_WEB_USER_SEC_ATTR_VALUES A,
           AP_EXPENSE_REPORT_HEADERS AERH,
           PER_PEOPLE_X PER_EMPLOYEE,
           PER_PEOPLE_X PER_APPROVER
    WHERE  AERH.VOUCHNO +0=0
    AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID'
    AND AERH.PAID_ON_BEHALF_EMPLOYEE_ID = A.NUMBER_VALUE
    AND A.WEB_USER_ID = :4
    AND PER_EMPLOYEE.PERSON_ID = PAID_ON_BEHALF_EMPLOYEE_ID
    AND AERH.EMPLOYEE_ID IS NULL
    AND (AERH.Source <> 'NonValidatedWebExpense'
         OR AERH.Workflow_approved_flag IS NULL)
    AND AERH.expense_current_approver_id = PER_APPROVER.person_id
    AND decode(AERH.total,0,ROUND(NVL(sysdate - AERH.EXPENSE_LAST_STATUS_DATE,sysdate - AERH.LAST_UPDATE_DATE)),30) <= 30
    AND AERH.SOURCE <> 'Both Pay'
    UNION ALL
    /* This select is for invoice imported reports by contingent workers */
    SELECT
    AI.DESCRIPTION PURPOSE,
    AI.INVOICE_CURRENCY_CODE CURRENCY_CODE,
    AI.INVOICE_DATE REPORT_DATE,
    AERH.REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
    AI.INVOICE_NUM REPORT_NUMBER,
    TO_CHAR(decode(nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),
                     0, decode(AI.CANCELLED_DATE,
                                 null, APS.GROSS_AMOUNT,
                                 AERH.TOTAL),
                   nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0)) ,  
            FND_CURRENCY_CACHE.GET_FORMAT_MASK
            (AI.INVOICE_CURRENCY_CODE, 30)) ||' '|| AI.INVOICE_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
    TO_CHAR(decode(nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),
                     0, decode(AI.CANCELLED_DATE,
                                 null, APS.GROSS_AMOUNT,
                                 AERH.TOTAL),
                   nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0)) ,  
            FND_CURRENCY_CACHE.GET_FORMAT_MASK
            (AI.INVOICE_CURRENCY_CODE, 30))
    REPORT_TOTAL,
    P.PERSON_ID EMPLOYEE_ID,
    AERH.REPORT_HEADER_ID REPORT_HEADER_ID,
    P.FULL_NAME FULL_NAME ,
    DECODE(AI.CANCELLED_DATE,null,
                              nvl(aerh.expense_status_code, DECODE(APS.GROSS_AMOUNT ,0,'PAID',
                                    decode(AI.Payment_status_flag,'Y','PAID',
                                                            'N','INVOICED',
                                                            'P','PARPAID',NULL))),
                                            'CANCELLED') STATUS_CODE,
    AERH.source SOURCE,
    NULL CURRENT_APPROVER,
    ROUND(sysdate - AI.LAST_UPDATE_DATE) DAYS_SINCE_ACTIVITY,
    AERH.RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
    AERH.HOLDING_REPORT_HEADER_ID,
    AI.VENDOR_ID VENDOR_ID,
    AERH.AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
    AERH.AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,          
    'CurrentApproverName' CURRENT_APPROVER_SWITCHER,
    to_char(AERH.LAST_UPDATE_DATE, 'DD-MON-RRRR HH:MI:SS'),
    AI.INVOICE_ID INVOICE_ID
    FROM
           AK_WEB_USER_SEC_ATTR_VALUES A,
           AP_INVOICES AI,
           AP_EXPENSE_REPORT_HEADERS AERH,
           PER_PEOPLE_X P,
           AP_PAYMENT_SCHEDULES APS
    WHERE  AI.INVOICE_ID= APS.INVOICE_ID
    AND    AI.INVOICE_ID = AERH.VOUCHNO(+)
    AND AI.INVOICE_TYPE_LOOKUP_CODE||'' = 'EXPENSE REPORT'
    AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID'
    AND AI.PAID_ON_BEHALF_EMPLOYEE_ID = A.NUMBER_VALUE
    AND A.WEB_USER_ID = :5
    AND P.PERSON_ID = AI.PAID_ON_BEHALF_EMPLOYEE_ID
    AND AP_WEB_DB_HR_INT_PKG.IsPersonCwk(AI.PAID_ON_BEHALF_EMPLOYEE_ID)='Y'
    AND DECODE (AI.PAYMENT_STATUS_FLAG,
             'Y', sysdate - AI.LAST_UPDATE_DATE,
            decode(APS.GROSS_AMOUNT , 0 ,sysdate - AI.LAST_UPDATE_DATE,0)
              )  <= 30
    AND (AERH.SOURCE <> 'Both Pay' OR AERH.REPORT_HEADER_ID IS NULL)) QRSLT  WHERE (REPORT_SUBMITTED_DATE is not null)
    at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:891)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:603)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
    at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
    at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2360)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1759)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
    at _OA._jspService(OA.jsp:33)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
    at java.lang.Thread.run(Thread.java:534)
    ## Detail 0 ##
    java.sql.SQLException: ORA-01008: not all variables bound
    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:583)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144)
    at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2548)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2933)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:650)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:578)
    at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:631)
    at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:518)
    at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3375)
    at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:828)
    at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4525)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:544)
    at oracle.jbo.server.ViewRowSetImpl.executeDetailQuery(ViewRowSetImpl.java:619)
    at oracle.jbo.server.ViewObjectImpl.executeDetailQuery(ViewObjectImpl.java:3339)
    at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3326)
    at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQuery(OAViewObjectImpl.java:441)
    at oracle.apps.ap.oie.webui.Custom_HomePageCO.processRequest(Custom_HomePageCO.java:26)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
    at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
    at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2360)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1759)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
    at _OA._jspService(OA.jsp:33)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
    at java.lang.Thread.run(Thread.java:534)
    java.sql.SQLException: ORA-01008: not all variables bound
    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:583)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144)
    at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2548)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2933)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:650)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:578)
    at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:631)
    at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:518)
    at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3375)
    at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:828)
    at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4525)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:544)
    at oracle.jbo.server.ViewRowSetImpl.executeDetailQuery(ViewRowSetImpl.java:619)
    at oracle.jbo.server.ViewObjectImpl.executeDetailQuery(ViewObjectImpl.java:3339)
    at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3326)
    at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQuery(OAViewObjectImpl.java:441)
    at oracle.apps.ap.oie.webui.Custom_HomePageCO.processRequest(Custom_HomePageCO.java:26)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
    at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
    at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2360)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1759)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
    at _OA._jspService(OA.jsp:33)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
    at java.lang.Thread.run(Thread.java:534)
    I have took the sql from error message and i tried executing the same in toad... i was able execute it smoothly... i dot know why its working while running the page
    Please help me guys...
    Thanks,
    Pavan

    Hi Shobhi,
    Actually this relates to the Iexpenese Module. The VO is "oracle.apps.ap.oie.server.TrackExpenseReportsVO"(Seeded)
    The user Expense home screen is based on the above VO and this view returning multiple line for the same expense number which should be eliminated.
    so for this i need to filter data by adding where clause dynamically on top of the existing where conditions so that i can eliminate the duplicate row.
    Please suggest me !! how to move on
    Thanks,
    Pavan V
    91-9640871542

  • Binding in Prepared Statement is not working with Microsoft SQL Server JDBC

    I ran the following program with sqljdbc4.jar in the class path. There is data in the EMPLOYEE table for the employee name DEMO but the following program is not retrieving data for DEMO. When the same program was run with Merlia.jar in the class path, it was retrieving data for DEMO.
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Connection con = DriverManager.getConnection("jdbc:sqlserver://SERVER23:5000;databaseName=TESTDB", "SYSADM", "SYSADM");
    String sqlSele = "SELECT * FROM EMPLOYEE WHERE EMPNAME like ?" ;
    PreparedStatement sts = con.prepareStatement(sqlSele);
    sts.setString(1, "DEMO" );
    ResultSet rs = sts.executeQuery();
    while(rs.next())
    System.out.println("driverConn.main()" + rs.toString());
    catch(Exception e)
    System.out.println(e);
    e.printStackTrace();
    Can someone help me out from this issue.

    This is the program that I used for testing the behaviour of prepared statement with sqljdbc4.jar. Also included the code for Merlia.jar.
    import java.sql.*;
    public class driverConn {
         public static void main(String [] a)
              try{
              Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
              //Class.forName("com.inet.tds.TdsDriver");
              Connection con = DriverManager.getConnection("jdbc:sqlserver://SERVER23:5000;databaseName=TESTDB", "SYSADM", "SYSADM");
              //Connection con = DriverManager.getConnection("jdbc:inetdae7a:SERVER23:5000?database=TESTDB", "SYSADM", "SYSADM");
              String sqlSele = "SELECT * FROM EMPLOYEE WHERE EMPNAME like ?" ;
              //String sqlSele = "SELECT * FROM EMPLOYEE WHERE EMPNAME like ‘%DEMO%’”;
              PreparedStatement sts = con.prepareStatement(sqlSele);
              sts.setString(1, "DEMO" );
              //sts.setString(1, "%DEMO%" );          
              java.sql.ResultSet rs = sts.executeQuery();          
              while(rs.next())
                   System.out.println("EMPNAME is " + rs.getString(“EMPNAME”) + “”);                    }
              catch(Exception e)
                   System.out.println(e);
                   e.printStackTrace();
    Following are the specifications:
    Version of the Driver:
    Microsoft JDBC Driver 4.0 for SQL Server CTP3
    Downloaded the driver using the link http://www.microsoft.com/download/en/details.aspx?id=11774
    Java Version:
    Java 1.7.0_02
    Database Version:
    Microsoft SQL Server 2008 (SP2) - 10.0.4000.0 (X64)

  • Prepared statement - setDate(index, sql.Date, Cal) Help!

    Hi everyone, I'm creating a form to query an Oracle table. I'm setting up the search criteria which includes a start and end date. (in this example I've just used the start date)
    I get all the search parameters into my JSP and I created the following Calendar objects:
    // Calendar creation
    Calendar startCal = Calendar.getInstance();
    startCal.set(start_year, start_month, start_day, start_hour, start_minute);
    Calendar endCal = Calendar.getInstance();
    endCal.set(end_year, end_month, end_day, end_hour, end_minute);
    //define a sql.Date value for start and end date
    java.sql.Date startDate = null;
    java.sql.Date endDate = null;I then create a string that contains my SQL statement:
    String sqlStmt = "select dateValue, value3 from someTable where dateValue >= ? and value2 = ?";In my Prepared Statement I pass in the following information:
    ps = c.prepareStatement(sqlStmt);
    ps.setDate(1, startDate, startCal);
    ps.setString(2, searchValue);My question is the following - I define the hour and minute in my Cal object - will that information get passed into my "startDate" sql.Date object? According to the API it should work (at least that's my understading of it):
    http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html#setDate(int,%20java.sql.Date,%20java.util.Calendar)
    My search does not blow up or report any errors but it never finds a match - even when I put in parameters that I know are a match.
    Any feedback is appreciated.

    I think I got it. my java.sql.Date can't be null.
    java.sql.Date startDate = null;
    java.sql.Date endDate = null;needs to be:
    java.util.Date startCalendarDate = startCal.getTime();
    java.util.Date endCalendarDate = endCal.getTime();
    java.sql.Date startDate = new java.sql.Date(startCalendarDate.getTime());
    java.sql.Date endDate = new java.sql.Date(endCalendarDate.getTime());

  • Prepared Statement with SQL 'IN' Clause

    Hi,
    I am trying to write a JDBC SQL call to a database using a prepared statement, the call looks something like:
    select *
    from table
    where field in (?, ? ,?)
    this thing is that i don't know how many 'IN' parameters are needed until runtime (they come from a List), so is there an easy way of dealing with this, I haven't been able to find any information on this problem anywhere?

    >
    Hmmm...more expensive than say doing a query on on 2 billion rows with no index?
    More expensive than doing a cross server join?
    More expensive than doing a restore?
    I knew that someone would point this out. :)
    I just tried to exaggerate the importance of cursor sharing. This is one of the most important topic in DBMS world, but quite often ignored by JAVA world. I hope that you understand my good intention.
    >
    2. Insert data corresponding to bind variable to "T". Interesting idea. Please provide the algorithm for that. The only ones I can come up with
    1. Involved creating a "dynamic" SQL for the insert
    2. Doing multiple cross network inserts.
    The first of course is exactly what you said your solution prevented. The second will be more expensive than sending a single dynamically created select.Hopefully, this is not just an "interesting" idea, but very common technique in DBMS. Actually one of the common techniques. There are couple of ways to handle this kind(variable number of bind variables in "IN" clause) of problem.
    What i commented was that the simplest one. It's like this:
    (based on Oracle)
    SQL> create global temporary table bind_temp(value int);
    PreparedStatement stmt = con.prepareStatement("INSERT INTO bid_temp VALUES(?)");
    for(...) {
         stmt.setInt(1, aValue)
         stmt.addBatch();
    stmt.executeBatch();
    Statement stmt2 = con.executeQuery("SELECT * FROM target_table WHERE id IN (bind_temp)");
    ...Doesn't it look pretty? Pretty for both Java developers and DBAs.
    By virtue of the mechanism of batch processing, the total DBMS call is just twice and you need just 2 completely sharable SQL statements.
    (Hopefully you might understand that Oracle global temporary table is just session scope and we don't need them to be stored permanently)
    Above pattern is quite beneficial than these pattern of queries.
    SELECT * FROM target_table WHERE id IN (?)
    SELECT * FROM target_table WHERE id IN (?,?)
    SELECT * FROM target_table WHERE id IN (?,?,?)
    SELECT * FROM target_table WHERE id IN (?,?,?,?,.......,?)
    If you have large quantity of above patterns of queries, you should note that there are another bunch of better techniques. I noted just one of them.
    Hope this clairfies my point.

  • SQL Server Unicode 'N' prefix & Prepared Statements

    Hi,
    I'm using jsp, Tomcat 4.1, MSDE (SQL Server 2000 Desktop Edition), SQL Server 2000 Driver for JDBC
    to develop a simple data entry form.
    I was trying to insert a unicode string from a jsp page (input) to an SQL Server ntext field.
    My jsp includes the the definitions given below:
    <%@ page language = "java" contentType="text/html; charset=utf-8" pageEncoding="cp1254" import = "java.util.*, java.sql.*, java.text.*, java.io.*,java.lang.*" %>
    <%request.setCharacterEncoding("utf-8");%>
    <HTML>
    <HEAD>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    I executed a samlpe query INSERT INTO MyTable VALUES (N'Some Unicode String like &#351;&#350;&#304;&#305;&#287;&#286; ')
    It worked well but if the unicode string includes any apostrophe, it fails.
    So I decided to use a prepared statement.
    My code sample is as follows.
    String driver="sun.jdbc.odbc.JdbcOdbcDriver";
    Sring CURL="jdbc:odbc:portDb"; //ODBC connection
    Connection con = DriverManager.getConnection( CURL, un, pw );
    con.setAutoCommit(false);
    String sq= "INSERT INTO MyTable VALUES ?);
    String udata="Some Unicode String like &#351;&#350;&#304;&#305;&#287;&#286; ";
    PreparedStatement pstmt=con.prepareStatement(sq, ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    //Then I tried some different methods
    1) pstmt.setString(1, udata);
    //This inserts data as. "Some Unicode String like sSIigG"
    2) pstmt.setString(1, new String(udata.getBytes("utf-8"),"utf-8"));
    //This inserts data as. "Some Unicode String like sSIigG"
    byte[] bytes;
    InputStream is;
    bytes = udata.getBytes();
    is = new java.io.ByteArrayInputStream(bytes);
    3) pstmt.setUnicodeStream(1, is, bytes.length); //This inserts some strange characters
    4) pstmt.setAsciiStream(1, is, bytes.length); //This inserts some strange characters
    Reader dtxt;
    dtxt=new StringReader(udata.toString());
    5) pstmt.setCharacterStream(1, dtxt, udata.length()); //This inserts some strange characters
    pstmt.executeUpdate();
    con.commit();     
    con.close();
    Even I tried a callable statement using an sqlserver stored procedure.
    My code samples which is given above doesn't seem to insert the unicode string to the database truly.
    Is there a way to use the SQL Server National 'N' prefix in a prepared statement.
    or any suggestions to this problem.
    NOT: I can not insert especially these characters which is given below (codepage: cp1254)
    Alt+0222 Latin Capital Letter S with cedilla (&#350;)
    Alt+0254 Latin Small Letter s with cedilla (&#351;)
    Alt+0221 Latin Capital Letter I with a dot above (&#304;)
    Alt+0253 Latin Small Letter Dotless i (&#305;)
    Alt+0240 Latin Small Letter g with breve (&#287;)
    Alt+0208 Latin Capital Letter G with breve (&#286;)
    Thanks in Advance,

    I really don't know what might be happening. My suggestion (although I might get bashed for this) is to switch to another JDBC driver and see what happens.
    I'm one of the developers of the jTDS JDBC Driver. You could also try the JDBC-ODBC bridge (but as far as I know there is no way to specify Unicode/non-Unicode strings for the bridge) or a commercial driver.
    Alin.

  • Bug? java.sql.SQLException: No value specified for parameter 1

    ENV: Jdev1012+JHS1012(evaluation version)+MySql5.0 Or ORACLE 10.1.2
    ERR INFO:
    20:42:22 DEBUG (JhsDataAction) -Executing action /main
    20:42:22 DEBUG (JhsDataAction) -Created searchBean map and stored on session
    20:42:22 DEBUG (JhsDataAction) -Created new searchBean for SysRoleFirstLevelFuncUIModel and added to quick search bean map
    20:42:22 DEBUG (JhsDataAction) -Stored searchBean for SysRoleFirstLevelFuncUIModel on request
    [red]
    20:42:22 DEBUG (JhsDataAction) -ViewObject SysRoleFirstLevelFuncView1: value of bind param 0 set to S001
    20:42:22 DEBUG (JhsDataAction) -ViewObject SysRoleFirstLevelFuncView1: executing query, bind parameter values have changed
    05/11/22 20:42:23 java.sql.SQLException: No value specified for parameter 1[red]
    05/11/22 20:42:23      at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1253)
    05/11/22 20:42:23      at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1201)
    05/11/22 20:42:23      at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:966)
    05/11/22 20:42:23      at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:691)
    05/11/22 20:42:23      at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:547)
    05/11/22 20:42:23      at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3354)
    05/11/22 20:42:23      at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:667)
    05/11/22 20:42:23      at oracle.jbo.server.ViewRowSetImpl.executeQueryForMasters(ViewRowSetImpl.java:773)
    05/11/22 20:42:23      at oracle.jbo.server.ViewRowSetImpl.executeQuery(ViewRowSetImpl.java:710)
    05/11/22 20:42:23      at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3294)
    05/11/22 20:42:23      at oracle.adf.model.bc4j.DCJboDataControl.executeIteratorBindingIfNeeded(DCJboDataControl.java:803)
    05/11/22 20:42:23      at oracle.adf.model.binding.DCIteratorBinding.executeQueryIfNeeded(DCIteratorBinding.java:1587)
    05/11/22 20:42:23      at oracle.adf.model.binding.DCBindingContainer.refreshControl(DCBindingContainer.java:1544)
    05/11/22 20:42:23      at oracle.jheadstart.controller.strutsadf.action.JhsDataAction.applyIterBindParams(JhsDataAction.java:2785)
    05/11/22 20:42:23      at oracle.jheadstart.controller.strutsadf.action.JhsDataAction.prepareModel(JhsDataAction.java:3136)
    05/11/22 20:42:23      at oracle.adf.controller.struts.actions.DataAction.prepareModel(DataAction.java:486)
    05/11/22 20:42:23      at oracle.adf.controller.lifecycle.PageLifecycle.handleLifecycle(PageLifecycle.java:105)
    05/11/22 20:42:23      at oracle.adf.controller.struts.actions.StrutsUixLifecycle.handleLifecycle(StrutsUixLifecycle.java:70)
    05/11/22 20:42:24      at oracle.adf.controller.struts.actions.DataAction.handleLifecycle(DataAction.java:223)
    05/11/22 20:42:24      at oracle.jheadstart.controller.strutsadf.action.JhsDataAction.handleLifecycle(JhsDataAction.java:389)
    05/11/22 20:42:24      at oracle.adf.controller.struts.actions.DataAction.execute(DataAction.java:155)
    05/11/22 20:42:24      at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    05/11/22 20:42:24      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    05/11/22 20:42:24      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1485)
    05/11/22 20:42:24      at oracle.jheadstart.controller.strutsadf.JhsActionServlet.process(JhsActionServlet.java:127)
    05/11/22 20:42:24      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:527)
    05/11/22 20:42:24      at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    05/11/22 20:42:24      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    05/11/22 20:42:24      at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
    05/11/22 20:42:24      at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
    05/11/22 20:42:24      at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:663)
    05/11/22 20:42:24      at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
    05/11/22 20:42:24      at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:222)
    05/11/22 20:42:24      at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
    05/11/22 20:42:24      at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
    05/11/22 20:42:24      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
    05/11/22 20:42:24      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1485)
    05/11/22 20:42:24      at oracle.jheadstart.controller.strutsadf.JhsActionServlet.process(JhsActionServlet.java:127)
    05/11/22 20:42:24      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:527)
    05/11/22 20:42:24      at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    05/11/22 20:42:24      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    05/11/22 20:42:24      at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
    05/11/22 20:42:24      at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
    05/11/22 20:42:24      at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
    05/11/22 20:42:24      at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:239)
    05/11/22 20:42:24      at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
    05/11/22 20:42:24      at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:239)
    05/11/22 20:42:24      at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
    05/11/22 20:42:24      at oracle.jheadstart.controller.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:172)
    05/11/22 20:42:24      at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:659)
    05/11/22 20:42:24      at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
    05/11/22 20:42:24      at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
    05/11/22 20:42:24      at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:285)
    05/11/22 20:42:24      at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:126)
    05/11/22 20:42:24      at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
    05/11/22 20:42:24      at java.lang.Thread.run(Thread.java:534)
    the SQL for my VO is :
    SysRoleFirstLevelFuncView :
    SelectList="SysTabFunction.id,
    SysTabFunction.name,
    SysTabFunction.address,
    SysTabFunction.parent_func,
    SysTabRoleRight.ROLE_ID,
    SysTabRoleRight.FUNC_ID,
    SysTabFunction.disp_order"
    FromList="SYS_TAB_FUNCTION SysTabFunction, SYS_TAB_ROLE_RIGHT SysTabRoleRight"
    Where="SysTabFunction.Level=1 and SysTabFunction.id=SysTabRoleRight.FUNC_ID And SysTabRoleRight.Access_Type='Y' And SysTabRoleRight.Role_Id=?
    the Action In my struts-config.xml is :
    <action path="/main" input="/WEB-INF/page/main.uix" type="oracle.jheadstart.controller.strutsadf.action.JhsDataAction" className="oracle.jheadstart.controller.strutsadf.action.JhsDataActionMapping" parameter="/WEB-INF/page/main.uix" name="DataForm" unknown="false">
    <set-property property="modelReference" value="SysRoleFirstLevelFuncUIModel"/>
    ]red]<set-property property="bindParams" value="SysRoleFirstLevelFuncTreeIterator=${sessionScope.UserInfo.roleId}"/>[red] <forward name="SysRoleSecondLevelFunc2" path="/StartSysRoleSecondLevelFunc2.do"/>
    </action>
    we can find the parameter is set in the error message.is it a bug?
    thanks in advance
    best regards.

    Guo,
    I see a question mark in the sql statement, instead of the Oracle-style bind parameter notation which would be ":1". Can you change your VO to use Oracle-Style bind params and see whether it works?
    Steven Davelaar,
    JHeadstart Team.

Maybe you are looking for