从来没写过。
1、需要写包吗?CREATE OR REPLACE PRECEDURE PRC_GETBYPARAM
(
    CURSOR  curX(param varchar2) IS
    BEGIN
       OPEN curX FOR
       select * FROM TABLE WHERE COL like '%' + param + '%'
    END
)
这样写100%错了,请帮帮忙啊!急用急用!

解决方案 »

  1.   

    大概的CREATE OR REPLACE PACKAGE YourPackage
    AS 
        TYPE myrctype IS REF CURSOR;  
        PROCEDURE SP_XYZ(ch varchar2,
    p_rc OUT myrctype);
    END YourPackage;
    /CREATE OR REPLACE PACKAGE BODY YourPackage AS
      PROCEDURE SP_XYZ(ch IN varchar2, p_rc OUT myrctype)
      IS
      BEGIN
         open p_rc for
     select * from YourTable where COL like ch;
      END SP_CHEHAO;
    END YourPackage;using(OracleConnection conn = new OracleConnection("Data Source=***;User ID=***;Password=***"))
    {
      OracleCommand cmd = new OracleCommand();
      cmd.CommandType = CommandType.StoredProcedure;
      cmd.CommandText = "YourPackage.SP_XYZ";
                  
      cmd.Connection = conn;  OracleParameter param = new OracleParameter("ch", OracleType.VarChar);
      param.Direction = ParameterDirection.Input;
      param.Value = "%" + textBox1.Text.Trim() + "%";
      cmd.Parameters.Add(param);
                    
      cmd.Parameters.Add("p_rc", OracleType.Cursor).Direction = ParameterDirection.Output;
                    dt = new DataTable();  conn.Open();
                    
      dt.Load(cmd.ExecuteReader(CommandBehavior.CloseConnection));
      dataGridView1.DataSource = dt;
     
    }