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>