通过Ibatis将“varchar2(255)表”输入参数传递给c#中的Oracle存储过程

时间:2016-02-02 13:28:07

标签: c# oracle stored-procedures parameter-passing ibatis

我正在使用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 []”,但它们都没有用。

有什么想法吗?

0 个答案:

没有答案