none
Como enviar Parametro Tipo ObjectType Oracle desde C#? RRS feed

  • Pregunta

  • Buenas. 

    Como podría enviar un parámetro a un procedimiento en Oracle, el cuál es de tipo Object Type , desde C#? Estoy poniendo como tipo de datos 

    _parametrosSP.Add(new OracleParameter
                        {
                            ParameterName = ":Par_Item",
                            OracleDbType = OracleDbType.Clob,
                            Direction = ParameterDirection.Input,
                            Value = objeto.Par_Item,
                            UdtTypeName = "SP6DF.OP_REVISION_TABLE" 
                        }

    En donde SP6DF.OP_REVISION_TABLE es de tipo Object Type en Oracle. 

    Cabe decir que Par_Item es de tipo LIST, en donde hay 4 string del mismo tipo en el object type.  Muchas gracias en lo que me puedan ayudar. 


    • Editado FabianChar sábado, 22 de junio de 2019 17:08
    sábado, 22 de junio de 2019 17:07

Respuestas

Todas las respuestas

  • Hola FabianChar,

    Necesita algo así 

    using Oracle.DataAccess;
    using Oracle.DataAccess.Client;
    public DataTable GetHeader_BySproc(string unit, string office, string receiptno) {
      using (OracleConnection cn = new OracleConnection(DatabaseHelper.GetConnectionString())) {
        OracleDataAdapter da = new OracleDataAdapter();...

    https://stackoverflow.com/questions/3940587/calling-oracle-stored-procedure-from-c

    Gracias por usar los foros de MSDN.
    Erick Rivera
     ____
    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. 
    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    jueves, 4 de julio de 2019 23:23
  • hola

    Si te refieres a esto

    Introduction to Oracle Objects

    en realidad por lo que veo pareciera como definir un class en Oracle porque hay un Type definido por el usuario

    El tema pasa porque el proveedorde ado.net los soporte, no estoy seguro que la libreria estandar lo permita, pero si usas la de "devart" si tiene soporte

    Working with Objects

    veras como utiliza

    cmd.Parameters["PERSON"].DbType = OracleDbType.Object;
    cmd.Parameters["PERSON"].Value = person;

    siendo "person" un OracleObject en c#

    pero el problema es la libreria "devart" es licenciada

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 5 de julio de 2019 2:33
  • Hola, puedes mostrar el código de tu procedimiento Oracle y la definición de tus clases? Lo comento por si estás usando tipos UDT (User Defined Types) hay que hacer alguna cosilla extra. Te paso el enlace de Oracle por si te sirve

    Oracle User-Defined Types (UDTs) and .NET Custom Types

    How to use Oracle 11g ODP.NET UDT in an Oracle Stored Procedure's Where clause


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    viernes, 5 de julio de 2019 9:46
    Moderador