如何向存储过程传数组?,数组在存储过程中如何使用

解决方案 »

  1.   

    OracleCommand cmd = new OracleCommand("存储过程名字");
    cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.Add("pmUrl", OracleDbType.Varchar2).Value = Url;
                cmd.Parameters["pmUrl"].CollectionType = OracleCollectionType.PLSQLAssociativeArray;
                int[] BindSize = new int[Url.Length];
                for (int x = 0; x < Url.Length; x++)
                    BindSize[x] = Url[x].Length;其中 Url是一个字符串类型数组, 这要求你的Oracle.DataAccess是2.0的
    最好使用Oracle的那个  不要用System.Data.OracleClient.
      

  2.   

    这个存储过程的类型要定义一个table类型
    安装oracle客户端之后 安装目录里有个example文件夹
    里面的例子说的非常清楚
      

  3.   

    type AssocArrayVarchar2 is table of varchar2(256) index by binary_integer;
      

  4.   

    CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000)