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 <[email protected]>
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 <[email protected]>:
>
> > 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 <[email protected]>
> > wrote:
> >
> > > Hello Amol,
> > >
> > > 2015-11-10 21:03 GMT+01:00 Amol Kulkarni <[email protected]>:
> > >
> > > > 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
>