0

私はOracleの日時関数に苦労しています。

適切に動作するストアド プロシージャがありますが、ストアド プロシージャが VB.net から値を受け取ることができるように、VB.net から日付を解析する方法がわかりません。

VB.net から値を解析する方法を知っている人はいますか?この場合、日付時刻について話しているので、時間、秒、分になります。

どうもありがとう

ここに.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

パラメータはこのようにする必要があり、concat などの多くのことを試しました

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

1 に答える 1

1

このMSDN Forum Postingによると、Oracle Date データ型は .Net Date データ型に対応しています。

上記のリンクから:

パラメータ値は、文字列ではなく、日付データ値である必要があります。基礎となる表現は数値であるため、パラメーターとして渡すときに日付をフォーマットする必要はありません。

すなわち

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

これを編集して、日付/時刻情報を解析し、文字列を変換してください。

  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

利用方法:

p5.Value = GetDateTime("2012-01-23 22:00, YYYY-MM-DD hh24:mi") 'or what ever your string variable is.
于 2012-07-04T02:35:07.123 に答える