commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Amol Kulkarni <amolkul...@gmail.com>
Subject Re: [dbutils] Issue when using more than 1 parameter in query
Date Tue, 17 Nov 2015 08:07:07 GMT
We tested this code with standalone app.The  stmt.getParameterMetaData()
in QueryRunner.java  is throwing error. We asked DBA , but he does not see
any query in logs coming. He is the debug. We add QueryRunner.java in
classpath so that we can debug / put some sys outs.

query coming here is SELECT * FROM DIGITAL_CERTIFICATE_CACHE     WHERE
CERT_STATUS=? AND CERT_USAGE=?
params coming here is I
java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:392)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:385)
    at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:938)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:655)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
    at oracle.jdbc.driver.T4C8Odscrarr.doODNY(T4C8Odscrarr.java:96)
    at
oracle.jdbc.driver.T4CPreparedStatement.doDescribe(T4CPreparedStatement.java:719)
    at
oracle.jdbc.driver.OracleStatement.describe(OracleStatement.java:4223)
    at
oracle.jdbc.driver.OracleResultSetMetaData.<init>(OracleResultSetMetaData.java:52)
    at
oracle.jdbc.driver.OracleStatement.getResultSetMetaData(OracleStatement.java:4206)
    at
oracle.jdbc.driver.OraclePreparedStatement.getMetaData(OraclePreparedStatement.java:4603)
    at
oracle.jdbc.driver.OraclePreparedStatementWrapper.getMetaData(OraclePreparedStatementWrapper.java:1510)
    at
oracle.jdbc.driver.OracleParameterMetaData.getParameterMetaData(OracleParameterMetaData.java:70)
    at
oracle.jdbc.driver.OraclePreparedStatement.getParameterMetaData(OraclePreparedStatement.java:11621)
    at
oracle.jdbc.driver.OraclePreparedStatementWrapper.getParameterMetaData(OraclePreparedStatementWrapper.java:1552)
    at
com.npower.dpi.services.util.AbstractQueryRunner.fillStatement(AbstractQueryRunner.java:228)
    at com.npower.dpi.services.util.QueryRunner.query(QueryRunner.java:351)
    at com.npower.dpi.services.util.QueryRunner.query(QueryRunner.java:215)
    at com.npower.dpi.services.util.test.main(test.java:63)

If we put a try catch block around stmt.getParameterMetaData() in
AbstractQueryRunner.fillStatement() which eats this error, then we get a
proper result back. So I think the query is not executed as before that
only an exception is thrown. So what could be an issue in getting
metadata.



On Tue, Nov 17, 2015 at 12:35 PM, Benedikt Ritter <britter@apache.org>
wrote:

> Hello Amol,
>
> can you see the query being sent to your database in the query log? Maybe
> it is different from what you're expecting.
>
> Benedikt
>
> 2015-11-17 7:23 GMT+01:00 Amol Kulkarni <amolkulkar@gmail.com>:
>
> > Yes it does work when done through sql developer command line , also
> tried
> > from sql plus it works. The problem occurs only through dbutils.
> >
> > On Tue, Nov 17, 2015 at 12:33 AM, Benedikt Ritter <britter@apache.org>
> > wrote:
> >
> > > Hello Amol,
> > >
> > > 2015-11-10 21:03 GMT+01:00 Amol Kulkarni <amolkulkar@gmail.com>:
> > >
> > > > Hi,
> > > >
> > > > I am getting a ORA-00942: table or view does not exist when I query
> > using
> > > > dbutils api with 2 parameters. My enviroment si WAS 8.5.5 and oracle
> db
> > > 11g
> > > >
> > > > I am using dbutils1.6 to make db calls. The problem occurs if I send
> > two
> > > > query parameters like SELECT * FROM  DIGITAL_CERTIFICATE_CACHE WHERE
> > > > CERT_SUBJECT_NAME=? AND CERT_STATUS=? Parameters:
> > > [70-B3-D5-1F-30-4E-DF-20,
> > > > I] . If I send only one SELECT * FROM  DIGITAL_CERTIFICATE_CACHE
> WHERE
> > > > CERT_SUBJECT_NAME=? Parameters: [70-B3-D5-1F-30-4E-DF-20] then query
> > > > returns  and application is working. My dbutils code is as follows
> > > >
> > > >
> > > >
> > > >    QueryRunner run = new QueryRunner(${DataSource});
> > > >             // getting Query from propertues file to fetchBySubject
> > > >             String sqlquery = PropertyFileUtil
> > > >                     .getPropertyValue("fetchbysubject.sql");
> > > > [fetchbysubject.sql = SELECT * FROM DIGITAL_CERTIFICATE_CACHE WHERE
> > > > CERT_SUBJECT_NAME=? AND CERT_STATUS=?]
> > > >             // preparing instance for Custom ResultSetHandler to
> > process
> > > >             // ResultSet
> > > >             ResultSetHandler<List<DigitalCertificateCache>>
handler =
> > new
> > > > DPIServicesDAOResultSetHandler();
> > > >             results = run.query(sqlquery, handler, new Object[] {
> > > > subjectname,
> > > >                     "I" });
> > > >
> > > >
> > > >
> > > > Can somebody please point the problem.
> > > >
> > >
> > > Does it work, when you run the query via the command line?
> > >
> > > Regards,
> > > Benedikt
> > >
> > >
> > > --
> > > http://people.apache.org/~britter/
> > > http://www.systemoutprintln.de/
> > > http://twitter.com/BenediktRitter
> > > http://github.com/britter
> > >
> >
>
>
>
> --
> http://people.apache.org/~britter/
> http://www.systemoutprintln.de/
> http://twitter.com/BenediktRitter
> http://github.com/britter
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message