Análisis de fecha y hora de VB.NET a procedimiento almacenado de Oracle

He estado luchando con la función de fecha y hora de Oracle.

Tengo un procedimiento almacenado que se ejecuta correctamente y bien hecho, pero no tengo idea de cómo puedo analizar la fecha de VB.net para que el procedimiento almacenado pueda recibir el valor de VB.net.

¿Alguien sabe cómo analizar el valor de VB.net? En este caso, hablo de la fecha y hora, por lo que será una hora, un segundo y un minuto.

Muchas gracias

Aquí está el código .NET

Try
            Dim conn As New OracleConnection(connectionString(data(0), data(1), data(2)))
            conn.Open()
            Dim cmd As New OracleCommand
            cmd.Connection = conn
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "transactionme"
            Dim p1 As OracleParameter
            Dim p2 As OracleParameter
            Dim p3 As OracleParameter
            Dim p4 As OracleParameter
            Dim p5 As OracleParameter
            Dim p6 As OracleParameter
            Dim p7 As OracleParameter
            Dim p8 As OracleParameter
            Dim p9 As OracleParameter
            Dim p10 As OracleParameter
            p1 = cmd.Parameters.Add("param1", OracleDbType.NChar)
            p1.Value = ""
            p2 = cmd.Parameters.Add("param2", OracleDbType.NChar)
            p2.Value = "STD2"
            p3 = cmd.Parameters.Add("param3", OracleDbType.NChar)
            p3.Value = "RK001"
            p4 = cmd.Parameters.Add("param4", OracleDbType.NChar)
            p4.Value = "EK001"
            p5 = cmd.Parameters.Add("param5", OracleDbType.Date)
            p5.Value = "here is the problem"
            p6 = cmd.Parameters.Add("param6", OracleDbType.Date)
            p6.Value = "here is the problem"
            p7 = cmd.Parameters.Add("param7", OracleDbType.Date)
            p7.Value = "here is the problem"
            p8 = cmd.Parameters.Add("param8", OracleDbType.NChar)
            p8.Value = "Master Card"
            p9 = cmd.Parameters.Add("param9", OracleDbType.Int32)
            p9.Value = 30000

            Dim n As Integer
            n = cmd.ExecuteNonQuery()
            MessageBox.Show(n.ToString)
            conn.Close()
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try

El parámetro debería ser así, he probado muchas cosas como concat y otras

to_date('2012-01-23 22:00', 'YYYY-MM-DD hh24:mi')

preguntado el 04 de julio de 12 a las 03:07

No estoy seguro de lo que estás preguntando aquí. ¿El procedimiento toma un VARCHAR2? A DATE? A TIMESTAMP? Un INTERVAL? Si el procedimiento toma un VARCHAR2, ¿cómo se ve la cuerda? ¿Qué estás tratando de analizar de la cadena? -

Editado chicos, por favor tengan la amabilidad de echar un vistazo, gracias -

1 Respuestas

De acuerdo con esta Publicación en el foro de MSDN el tipo de datos Oracle Date corresponde al tipo de datos .Net Date.

Desde arriba Enlace:

El valor del parámetro debe ser un valor de datos de fecha y no una cadena. No es necesario formatear la fecha cuando la pasa como parámetro, ya que la representación subyacente es numérica.

es decir,

p5 = cmd.Parameters.Add("param5", OracleDbType.Date)  
p5.Value = Convert.ToDateTime("Your Date here")  

Edite intente esto para analizar su información de fecha/hora y convertir su cadena.

  Private Function GetDateTime(dateFormat As String) As Date
    Dim split() As String = New String() {","}

    Return Convert.ToDateTime(dateFormat.Split(split, 2, StringSplitOptions.None)(0))

End Function

uso:

p5.Value = GetDateTime("2012-01-23 22:00, YYYY-MM-DD hh24:mi") 'or what ever your string variable is.

Respondido 04 Jul 12, 06:07

p5 = cmd.Parameters.Add("param5", OracleDbType.Date) p5.Value = Convert.ToDateTime("2012-01-23 22:00, YYYY-MM-DD hh24:mi") He intentado esto pero desafortunadamente hay un error porque la cadena no es válida, ¿puede darme una idea de cómo hacer esto correctamente? - Gran Sonrisa

@BigSmile No necesita el formato si solo usa Convert.ToDateTime("2012-01-23 22:00") funcionará. - Mark Hall

¿Qué hay dentro de la nueva fecha? Gracias - Gran Sonrisa

@BigSmile Lo siento, esa es su cadena de fecha y hora ("2012-01-23 22:00, AAAA-MM-DD hh24: mi" déjame ver si puedo aclararlo un poco mejor en la respuesta: Mark Hall

Convert.ToDateTime(newDate.Split( genera un error señor --->split, 2, StringSplitOptions.None)(0)) - Gran Sonrisa

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.