我正在使用c#中的Ibatis。在Oracle中,我有一个全局类型定义
create or replace type charArray is table of varchar2(255);
我在存储过程中使用此类型作为输入参数。通常它应该包含几千个字符串,每个字符串的长度为25-30。
此过程在表的指定列中搜索这些值,并以TYPES包中定义的类型返回结果集
CREATE OR REPLACE PACKAGE TYPES AS
type cursorType is ref cursor;
END;
我的存储过程的标题如下所示:
CREATE OR REPLACE PROCEDURE psearch (
P_RESULTSET OUT TYPES.cursorType,
P_SEARCHEDSTRINGS in charArray
)
我想在我的sqlmap中定义一个parameterMap,通过Ibatis从c#调用这个存储过程。
我的parameterMap应如下所示:
<parameterMaps>
<parameterMap id="parmap" class="Hashtable">
<parameter property="P_RESULTSET" mode="OUT" column="P_RESULTSET" dbType="RefCursor"/>
<parameter property="P_SEARCHEDSTRINGS " mode="IN" column="P_SEARCHEDSTRINGS " dbType="????"/>
</parameterMap>
</parameterMaps>
第一个(输出)参数工作正常(我在此过程的单参数测试版本中测试了它,并通过Mapper.Instance()得到了所需的结果.QueryForList())。但我找不到第二个(输入)参数的dbType。
我已经尝试过“charArray”,“table”,“varchar2”,“varhcar2 []”,但它们都没有用。
有什么想法吗?