I have used oracle in serveral years but not with iBATIS.

The "GetWidgets" function has a return parameter. As Oracle support function
overloads, it can not find a function named as "GetWidgets" with no
parameter.

I guess you should define a parameterMap.

You may also try the ODBC call syntax.


On Thu, Jun 11, 2009 at 3:02 AM, Uwe Schmitz <uwe.schm...@protegra.com>wrote:

>  I have the following package in an Oracle 9i Database Release 2; I’m
> using the Oracle Data Provider 11.1.0.6.20 and iBATIS DataMapper 1.6.1.
>
>
>
> Calling ISqlMapper.QueryForList<Widget>("GetWidgets", null) produces the
> following error:
>
>
>
> ORA-06550: line 1, column 7:
>
> PLS-00221: 'GET_WIDGETS' is not a procedure or is undefined
>
> ORA-06550: line 1, column 7:
>
> PL/SQL: Statement ignored
>
>
>
> A Google search reveals several articles about getting the Java DataMapper
> to work like this; the FAQ even features an article about using a REF CURSOR
> as an output parameter. No solution to this approach seems to be available.
>
>
>
> Any assistance getting this to work with would be appreciated.
>
>
>
>
>
> *Package Specification*
>
> Package WIDGETS_PKG As
>
>   Function GET_WIDGETS Return SYS_REFCURSOR;
>
> End WIDGETS_PKG;
>
>
>
>
>
> *Package Body*
>
> Package Body WIDGETS_PKG As
>
>   Function GET_WIDGETS Return SYS_REFCURSOR Is
>
>
>
>   WIDGETS SYS_REFCURSOR;
>
>
>
>   Begin
>
>     Open WIDGETS For
>
>     SELECT ID,
>
>       NAME
>
>     FROM WIDGETS
>
>     ORDER BY ID;
>
>
>
>     Return WIDGETS;
>
>   End;
>
> End WIDGETS_PKG;
>
>
>
>
>
> *Widget Class*
>
> namespace Testing {
>
>   public class Widget {
>
>     public int Key {
>
>       get;
>
>       set;
>
>     }
>
>
>
>     public string Name {
>
>       get;
>
>       set;
>
>     }
>
>   }
>
> }
>
>
>
>
>
> *Data Map*
>
> <?xml version="1.0" encoding="utf-8" ?>
>
> <sqlMap namespace="Widget"
>
>         xmlns="http://ibatis.apache.org/mapping";
>
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; >
>
>   <alias>
>
>     <typeAlias alias="Widget"
>
>                type="Testing.Widget, Testing" />
>
>   </alias>
>
>   <statements>
>
>     <procedure id="GetWidgets"
>
>                resultMap="GetWidgetsResultMap">WIDGETS_PKG.GET_WIDGETS</
> procedure>
>
>   </statements>
>
>   <resultMaps>
>
>     <resultMap id="GetWidgetsResultMap"
>
>                class="Widget">
>
>       <result property="Key"
>
>               column="ID" />
>
>       <result property="Name"
>
>               column="NAME" />
>
>     </resultMap>
>
>   </resultMaps>
>
> </sqlMap>
>

Reply via email to