你给的参数是批量执行用的,ODP.NET就不支持自定义类型作为参数传递,更何况你定义的那个变量是输入型参数,而不是输出型,只能在PL/SQL里面使用,无法在.NET里面被调用。

解决方案 »

  1.   

    你在oracle定义是NUMBER,你在c#传的却是数组,这当然不行的
      

  2.   

    CREATE OR REPLACE TYPE ARR_IDS IS TABLE OF NUMBER;
    你在C#里把一个数组传给NUMBER ?
      

  3.   


    你们两个会Oracle自定义类型吗?再仔细看看,命名是自定义了一个表对象,居然说是NUMBER。
    CREATE OR REPLACE TYPE ARR_IDS IS TABLE OF NUMBER;
    我都说了是不支持自定义类型了,真不懂怎么还来乱说。
      

  4.   


    你们两个会Oracle自定义类型吗?再仔细看看,命名是自定义了一个表对象,居然说是NUMBER。
    CREATE OR REPLACE TYPE ARR_IDS IS TABLE OF NUMBER;
    我都说了是不支持自定义类型了,真不懂怎么还来乱说。
    http://www.cnblogs.com/KissKnife/archive/2011/04/21/2023472.html
      

  5.   

    OracleDbType 我怎么找不到,还是用字符串传入吧
      

  6.   

    存储过程的参数是number,你传个数组过去干嘛...