C#调用Oracle存储过程,参数为数组,能实现吗?如何实现?谢谢!

解决方案 »

  1.   

    http://blog.csdn.net/web_gus/archive/2004/10/13/134907.aspx
      

  2.   

    TO:zhzuo(秋枫) 原文写的不错,以前看过,还有没有好的办法?我打开包查看属性,类型为Table Of Numerice 10,在里头定义的其实数值型的数组
    用参数生成器,发现它是vchar型的,结果把int型的数组传给参数也不行;
    把参数类型设置为object的,还是不行大家有没有碰到类似的问题啊?
      

  3.   

    Db_Com.Parameters Para1 = new Db_Com.Parameters();
    Para1.DbType  = System.Data.OleDb.OleDbType.Char;
    Para1.ParameterName = "Para_HJDM";
    Para1.Value = hjdm;......Para2,Para3类似 // Db_Com是一个自己封装得类(操作数据库)Db_Com.Parameters[] paras = new Db_Com.Parameters[]{Para1,Para2,Para3};
    DataTable dt = null;
    using(Db_Com.Db_SP_Com  dbCom = new Db_Com.Db_SP_Com())
    {
       dt = dbCom.TableSP(paras,"PKG_JC_SSJC_SKTZ.JC_SSJC_SKTZ_GetNSTZXX");
    }
    return dt;
      

  4.   

    用数组不太现实,可以将要传入的数据用一个分隔符分开然后作为字符串传入,储存过程中再拆开,或者先写入到一个表中,储存过程从表中取数据(表中可以设置一个guid字段来识别)