Buenos días,

Me he encontrado con un "problema" un poco raro y es el siguiente:

He creado una función de tipo tabla en una BD Oracle 10 que al
invocarla desde la herramienta que utilizo para conectarme a la BD
retorna resultados, pero al invocarla desde la aplicación utilizando
NHibernate no retorna nada.
Lo más raro de todo es que al conectarme a la BD utilizando TOAD,
cuando ejecuto la función como Statement (F9) no retorna resultados,
pero al ejecutarla como script (F5) sí lo hace.

Al parecer NHibernate utiliza el primer acercamiento (ejecutar como
Statement, aunque no sé como configura esto a través de ADO.NET) . He
probado invocar a la función utilizando ADO.NET directamente (a través
de OracleDataClient), pero sigo sin obtener resultados.

En el mapping el namedQuery lo he declarado de la siguiente manera:

<sql-query name="GetPData" >
    <return-scalar column="ID" type="System.String"/>
    <![CDATA[
              SELECT ID FROM TABLE("fnGetPData"(:typeID, :pID, :eID))
       ]]>
  </sql-query>

Para invocarlo desde el código hago lo siguiente:

return session.GetNamedQuery("GetPData")
                                .SetInt32("typeID", typeID)
                                .SetInt32("pID", pID)
                                .SetString("eID", eID)
                                .List<string>();

El resultado siempre es el mismo, 0 resultados. En cambio, ejecutando:

SELECT ID FROM TABLE("fnGetPData"(:typeID, :pID, :eID))

desde el SQL PLUS si retorna resultados.





-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a