There is an option to disable the use of the metadata command as some DBs
(Oracle for example) don't implement it properly. See
https://commons.apache.org/proper/commons-dbutils/apidocs/org/apache/commons/dbutils/QueryRunner.html#QueryRunner(javax.sql.DataSource,%20boolean)

If that doesn't help, then I'm not sure...

Bill-
On Nov 19, 2015 3:24 AM, "Amol Kulkarni" <[email protected]> wrote:

> Thank you all for your response . as we are unable to determine problem, we
> have moved back to plain jdbc for this.
>
> On Wed, Nov 18, 2015 at 5:03 PM, Amol Kulkarni <[email protected]>
> wrote:
>
> > I think so, the problem is with dbutils to query this particular table.
> If
> > there was something in debug logs to see why getParameterMetaData() is
> > throwing error when used with dbutils , we could pinpoint the issue.
> >
> > On Wed, Nov 18, 2015 at 4:59 PM, Benedikt Ritter <[email protected]>
> > wrote:
> >
> >> Hello Amol,
> >>
> >> 2015-11-17 9:07 GMT+01:00 Amol Kulkarni <[email protected]>:
> >>
> >> > 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.
> >> >
> >>
> >> I'm not sure I can follow. Do you think there is a problem in dbutils?
> >>
> >> Benedikt
> >>
> >>
> >> >
> >> >
> >> >
> >> > 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
> >> > >
> >> >
> >>
> >>
> >>
> >> --
> >> http://people.apache.org/~britter/
> >> http://www.systemoutprintln.de/
> >> http://twitter.com/BenediktRitter
> >> http://github.com/britter
> >>
> >
> >
>

Reply via email to