ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Fagan <mfa...@tde.com>
Subject Re: fetch out of sequence
Date Wed, 07 Dec 2005 20:35:02 GMT
I am unaware of any planned native support of PL/SQL tables.

Your best bet for handling PL/SQL tables or object types is to create a 
implement a custom TypeHandlerCallback.

Regards,
Mike Fagan

Juan Cañadas wrote:

> It works fine!!!
> Thanks!!! :-)
>
> Another question... Oracle PL/SQL tables aren't supported? is there 
> expected to support them in future versions?
>
> Mike Fagan wrote:
>
>> Juan,
>>
>> Sorry I missed the change for namespaces. If you download the source 
>> from the wiki it should work fine for you.
>> (I even tested with your sample code)
>>
>> Regards,
>> Mike Fagan
>>
>> Juan Cañadas wrote:
>>
>>> ok, thanks...
>>>
>>> i have been replaced older ibatis jars.... now, i get this error...
>>>
>>> com.ibatis.common.jdbc.exception.NestedSQLException:  --- The error 
>>> occurred in es/xx/dao/rdb/usuario.xml. --- The error occurred while 
>>> applying a parameter map. --- Check the Usuario.getUsuariosRefPM. 
>>> --- Check the output parameters (retrieval of output parameters 
>>> failed). --- Cause: com.ibatis.sqlmap.client.SqlMapException: There 
>>> is no result map named getUsuarioRef in this SqlMap.
>>> Caused by: com.ibatis.sqlmap.client.SqlMapException: There is no 
>>> result map named getUsuarioRef in this SqlMap.
>>>    at 
>>> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:188)

>>>
>>>    at 
>>> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104)

>>>
>>>    at 
>>> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:561)

>>>
>>>    at 
>>> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:536)

>>>
>>>    at 
>>> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:93)

>>>
>>>    at 
>>> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:70)

>>>
>>>    at es.tid.imagenio.eai.Prueba.main(Prueba.java:100)
>>>
>>> someone can help me?
>>>
>>> thanks....
>>>
>>> Mike Fagan wrote:
>>>
>>>> Juan,
>>>>
>>>> The source code has been updated to fix this error. You can 
>>>> download patch code at:
>>>> http://opensource2.atlassian.com/confluence/oss/pages/viewpageattachments.action?pageId=561

>>>>
>>>>
>>>> Regards,
>>>> Mike Fagan
>>>>
>>>> Juan Cañadas wrote:
>>>>
>>>>> Hi
>>>>>
>>>>> I'm trying to get a list of values from an oracle stored 
>>>>> procedure....
>>>>>
>>>>> I've been updated ibates to support oracle's cursor 
>>>>> (http://opensource2.atlassian.com/confluence/oss/display/IBATIS/Oracle+REF+CURSOR+Solutions)

>>>>>
>>>>> but when i run the program it raises the error:
>>>>> --------------------
>>>>> Caused by: java.sql.SQLException: ORA-01002: fetch out of sequence
>>>>>
>>>>>   at 
>>>>> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:185)

>>>>>
>>>>> --------------------
>>>>>
>>>>> Oracle code:
>>>>>
>>>>> CREATE OR REPLACE Package TypesPackage AS
>>>>>     TYPE ref_cursor IS REF CURSOR;
>>>>>  END TypesPackage;
>>>>> /
>>>>>
>>>>> CREATE OR REPLACE PACKAGE BODY SYSPackage is
>>>>>   PROCEDURE getUsuariosCursor (usuariosCursor OUT 
>>>>> TypesPackage.ref_cursor) AS          BEGIN
>>>>>       OPEN usuariosCursor FOR
>>>>>           SELECT userid, login, tipousr, descr, email FROM usuario 
>>>>> ORDER BY login;
>>>>>   END getUsuariosCursor;
>>>>> END;
>>>>> /
>>>>>
>>>>> --------------------
>>>>> usuario.xml:
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8" ?>
>>>>> <!DOCTYPE sqlMap
>>>>> PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
>>>>> "http://www.ibatis.com/dtd/sql-map-2.dtd">
>>>>> <sqlMap namespace="Usuario">
>>>>> <typeAlias alias="usuario" 
>>>>> type="es.miEmpresa.miProyecto.modelo.Usuario" />
>>>>>
>>>>> <resultMap id="getUsuarioRef" class="usuario">
>>>>>   <result property="id" column="userid" />
>>>>>   <result property="login" column="login" />
>>>>>   <result property="tipo" column="tipousr" />
>>>>>   <result property="descripcion" column="descr" />
>>>>>   <result property="email" column="email" />
>>>>> </resultMap>
>>>>>
>>>>> <parameterMap id="getUsuariosRefPM" class="map">
>>>>>   <parameter property="usuariosCursor" jdbcType="ORACLECURSOR" 
>>>>> mode="OUT" resultMap="getUsuarioRef" />
>>>>> </parameterMap>
>>>>>
>>>>> <procedure id="getUsuariosRef" parameterMap="getUsuariosRefPM">
>>>>>   { call SYSPackage.getUsuariosCursor(?) }
>>>>> </procedure>
>>>>>
>>>>> </sqlMap>
>>>>> --------------------
>>>>> and the java source:
>>>>>
>>>>>       Map map = new HashMap();
>>>>>       //List list;
>>>>>       try {
>>>>>           Prueba.sqlMap.queryForObject("getUsuariosRef", map);
>>>>>           System.out.println(map.get("usuariosCursor"));
>>>>>       }catch(Exception e){
>>>>>           e.printStackTrace();
>>>>>       }
>>>>>
>>>>> Can anyone help me? what is wrong? how can i solve this problem? 
>>>>> i'm newbie in java and ibates...
>>>>>
>>>>> Thanks
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>


Mime
View raw message