自己写一个这样的类。
用来传入参数数组的。
我记得有一个类叫SqlHelp
可以找地方下的。。可以实现。

解决方案 »

  1.   

    能否说的详细点
    如果将包头改为:
    Package definition:                                                
     CREATE OR REPLACE PACKAGE SimplePackage AS                         
                                                                        
     TYPE t_id is TABLE of  NUMBER(5)                                   
      INDEX BY BINARY_INTEGER;                                        
     TYPE t_Course is TABLE of VARCHAR2(10)                             
      INDEX BY BINARY_INTEGER;                                        
     TYPE t_Dept is TABLE of VARCHAR2(5)                                
      INDEX BY BINARY_INTEGER;                                        
                                                                        
     PROCEDURE proc1                                                    
        (                                                               
        i_id            in     number,                                   
        ao_course       OUT    t_Course,                                
        ao_dept         OUT    t_Dept                                   
        );                                                              
     END SimplePackage;    
    我可以通过以下方法调用:
    OleDbCommand myCMD =  new OleDbCommand
    ("{call SimplePackage.proc1(?, {resultset 4, ao_course,ao_dept})}", Oraclecon);
    myCMD.Parameters.Add("ID", OleDbType.Numeric, 4).Value = 123;
    OleDbDataReader myReader; 
    myReader = myCMD.ExecuteReader();
    int x; 
    int count;
    count = 0;
    while (myReader.Read())

    {
    for (x = 0; x <= myReader.FieldCount - 1; x++) 
    Console.Write(myReader.GetValue(x) + " ");
    Console.WriteLine();
    count += 1;
    }
    MessageBox.Show(count + " Rows Returned.");
    myReader.Close();
    Oraclecon.Close();
    但如果入参类型设置为PL/SQL中自定义类型,由于OleDbType中没有对应类型,不知如何下手。
    请多多指教!!!!!!!!!1
      

  2.   

    我写的存储过程为什么和楼上的不一样,我的是SQLserver2000
      

  3.   

    我写的存储过程是ORACLE的,只贴出了包头,包体没贴出来。
      

  4.   

    那个sqlHelp类里提供了一些方法,好像要先去数据库获取该sp的参数,传入的数组参数值开始时预设为Sqlparameter[] 类型
      

  5.   

    请问sqlHelp是在vs.net中提供,还是需要另外下载呀。
      

  6.   


    楼主,你的存储过程我看的不是很懂?但如果入参类型设置为PL/SQL中自定义类型,由于OleDbType中没有对应类型,不知如何下手。//
    对这句话。我觉得应该能找到具体对应的类型。你不妨把你定义的类型写出来看看,是不是有什么类型能代替它。对于sqlHelper类要另外下的。
      

  7.   

    这里关于oracle的存储过程没有问题,我已经编译通过了,oracle的存储过程具体编写方式可以参考《PL/SQL高级编程》。
    请问sqlhelp在哪里有下载的,如果你有的话,可否发一份给我,.
    多谢了!!!!