ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "vishakha sawant" <vishakha.saw...@gmail.com>
Subject Re: URGENT: Problem regarding REF Cursor
Date Fri, 07 Jul 2006 11:06:19 GMT
Hi punnet,
Thanks for your prompt reply.
Actually I am not closing that cursor in java code. Cursor is not opened in
stored procedure
for example if you have following oracle procedure

create or replace PROCEDURE SAMPLE_PROC (id IN NUMBER
,
                                  output IN OUT SAMPLE$PACK.SAMPLE_CUR,
                                  err OUT VARCHAR2)
IS
BEGIN
 OPEN output FOR SELECT ID,
                     NAME
                 FROM   MOCK_TABLE ;
END;

and Because of some IF condition that (output )cursor is not fetched then
you will get the following exception
in your plain JDBC code also.
In SqlExecutor.java the JDBC code to retrieve Cursor (cs.getObject(i+1)) is
causing the exception
So for a time being we catched that exception to retrieve other output
parameters. Is there any other way to avoid this exception

Regards,
Vishakha sawant







On 07/07/06, puneet arya <puneet_arya_old@yahoo.co.in> wrote:
>
> where you are closing the cursor remove that line . might be it works.
>
> Regards,
> Puneet Arya
>
>
> *vishakha sawant <vishakha.sawant@gmail.com>* wrote:
>
> Hi,
> I am using a patch version iBatis for REF CURSOR. We are using legacy
> database
> I was getting exception "Cursor is closed" while executing a procedure.
>
> stack trace of that exception is
> java.sql.SQLException : Cursor is closed.
>     at oracle.jdbc.driver.T4CResultSetAccessor.getCursor(
> T4CResultSetAccessor.java:271)
>     at oracle.jdbc.driver.ResultSetAccessor.getObject(
> ResultSetAccessor.java:94)
>     at oracle.jdbc.driver.OracleCallableStatement.getObject (
> OracleCallableStatement.java:1368)
>     at test.TestSPA.main(TestSPA.java:95)
>
> After doing some R&D I found that the if cursor is 'OUT' parameter and
> that is not opened in procedure, it will result in this exception. According
> to stack trace I found that in retrieveOutputParameters() method of
> com.ibatis.sqlmap.engine.execution.SqlExecutor.java  cs.getObject(i+1)  is
> causing this exception. For a time being we are catching that exception so
> that we can retrieve other OUT values from procedure. Is there any other way
> to resolve this issue?
> It's urgent.
>
> Regards,
>
> Vishakha sawant
>
>
> ------------------------------
> Find out what India is talking about on Yahoo! Answers India.<http://us.rd.yahoo.com/mail/in/mailanswersshare/*http://in.answers.yahoo.com/>
> So, what's NEW about the NEW Yahoo! Messenger? Find out.<http://us.rd.yahoo.com/mail/in/mailmessenger/*http://in.beta.messenger.yahoo.com/>
>
>

Mime
View raw message