commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benedikt Ritter <brit...@apache.org>
Subject Re: [dbutils] Issue when using more than 1 parameter in query
Date Wed, 18 Nov 2015 11:29:19 GMT
Hello Amol,

2015-11-17 9:07 GMT+01:00 Amol Kulkarni <amolkulkar@gmail.com>:

> 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 <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
> >
>



-- 
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