none
Executar procedure do oracle RRS feed

  • Pergunta

  • Pessoal, boa noite!

    Preciso chamar uma procedure no oracle, mas essa proc recebe como parametro um type.
    Procurei na net e achei um exemplo, mas no meu object OracleParameter, não tem o atributo UdtTypeName e tbm não tenho a opção OracleDbType.Object.

    fonte: http://forums.asp.net/t/1560135.aspx/1

    Isso pode ser da versão da DLL do Oracle Data Access?

    Qual versão eu deve usar?


    Att,
    Tiago Melantonio
    sexta-feira, 1 de junho de 2012 22:49

Respostas

Todas as Respostas

  • Tiago,

    Provavelmente a versao do Provider do Oracle que você está utilizando nao tem suporte a esse DbType... Qual provider você está utilizando? Já tentou utilizar a versao mais recente do provider?


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    segunda-feira, 4 de junho de 2012 10:48
    Moderador
  • Prezado(a),
    Estou migrando seu post para o fórum de Acesso a Dados.
    Por favor, das próximas vezes que tiver alguma dúvida relacionada a esse assunto, poste por lá.
    Obrigado.

    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    segunda-feira, 4 de junho de 2012 10:49
    Moderador
  • André,

    Consegui utilizar esse type Object (peguei uma nova versão da dll Oracle Data Access), porém estou tomando o erro:

    Invalid parameter binding Parameter name: p_customer_wl_tp

    O que pode ser?

    Estou utilizando o VS 2003.

    Att,

    Tiago Melantonio

    segunda-feira, 4 de junho de 2012 12:59
  • Olá Tiago,

    Neste caso precisamos que vc poste seu código.

    Pela mensagem parece a sua procedure esta recebendo um parâmetro com nome desconhecido.

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique

    segunda-feira, 4 de junho de 2012 13:04
    Moderador
  • Pessoal, boa tarde.

    Segue abaixo o código que estou utilizando:

    using (OracleConnection connOra = new OracleConnection())
    			{
    				connOra.ConnectionString = "user id=usuario;password=senha;data source=banco";
    
    				connOra.Open();
    
    				try
    				{
    					using (OracleCommand cmd = new OracleCommand("mig_b2w.b2w_enq_cust_wl_from_sql", connOra))
    					{
    						cmd.CommandType = CommandType.StoredProcedure;
    
    						using (OracleParameter parameterOra = new OracleParameter())
    						{
    							parameterOra.Direction = ParameterDirection.Input;
                                parameterOra.UdtTypeName = "B2W_BPEL_AQ.B2W_CUSTOMER_WL_TP";
                                parameterOra.ParameterName = "p_customer_wl_tp";
                                parameterOra.OracleDbType = OracleDbType.Object;
    							parameterOra.Value = (object)customer_wl;
    
    							cmd.Parameters.Add(parameterOra);
    						}
    
    						cmd.ExecuteNonQuery();
    					}
    				}
    				catch (Exception ex)
    				{
    					
    				}
    			}

    Olhando na internet, vi que preciso implementar alguns métodos na minha entidade, segue o link do que encontrei para gerar a entidade baseada nos types do Oracle, mas meu visual studio não reconhece esse ODP .Net

    http://developergeeks.com/article/8/generate-custom-net-types-from-oracle-udt

    Obrigado.


    terça-feira, 5 de junho de 2012 16:51
  • Olá Tiago,

    Vc chegou a ver este link: http://developergeeks.com/article/3/user-defined-type-support-in-oracle-odp-net-11g

    Qual versão do ODP vc instalou?

    Qual erro aparece para vc?

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique

    terça-feira, 5 de junho de 2012 17:06
    Moderador
  • Tiago,

    Alguma evolução neste tópico?

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique

    segunda-feira, 18 de junho de 2012 12:36
    Moderador