Pessoal,

Tenho uma package conforme abaixo no Oracle que retorna um tipo semelhante ao 
RefCursor, veja:

create or replace package minha_package is
   type t_estrutura is record
   (
       campo1 varchar2(255)
   );
   type t_retorno is table of t_estrutura index by binary_integer;
   function minha_funcao return t_retorno;
end;

create or replace package body minha_package is
   function minha_funcao return t_retorno is
      v_dados            t_retorno;
   begin
      v_dados(1).campo1 := 'FABIO';
      v_dados(2).campo1 := 'QUIRINO';
      v_dados(2).campo1 := 'TESTE';
      return v_dados;
   end minha_funcao;
end;

Estou com o código abaixo em C# que tem intenção de popular um DATASET com os 
dados do tipo definido no BD, só que não funciona... 

    protected void Executa()
    {
        OracleConnection con = new OracleConnection("minhaStringConexão");
        con.Open();

        // Create an OracleCommand
        OracleCommand cmd = new 
OracleCommand("owner.minha_package.minha_funcao", con);
        cmd.CommandType = CommandType.StoredProcedure;

        OracleParameter p1 = cmd.Parameters.Add("refcur_ret", 
OracleDbType.RefCursor);
        p1.Direction = ParameterDirection.ReturnValue;

        cmd.ExecuteNonQuery();

        OracleDataAdapter da = new OracleDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
    }

Alguém poderia me dizer como faço para pegar esse ReturnValue?

Obrigado,

Quirino


      Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]

Responder a