Задание параметров связанной даты для Oracle SQL в VB.NET

Надеюсь, кто-то может помочь. я использую Oracle.ManagedDataAccess.Client в моем проекте VB.NET, чтобы получить информацию из базы данных Oracle 11g.

У меня есть проект, работающий с жестко запрограммированной строкой, но я пытаюсь изменить дату и время на связанные переменные, так как слышал, что это облегчает загрузку сервера.

Я могу заставить ниже работать с Using Ocommand As New OracleCommand( и жестко запрограммированная строка даты и времени, но не может заставить работать ниже замену Using с прямой связью и со связанными переменными:

    ''Build SQL Query and set variables
    Dim d_start_date As DateTime = New DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour - 1, 0, 0)
    Dim p_start_date As OracleParameter = New OracleParameter
    p_start_date.OracleDbType = OracleDbType.Date
    p_start_date.Value = d_start_date
    p_start_date.ParameterName = "fromDateParam"

    Dim d_end_date As DateTime = New DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, 0, 0)
    Dim p_end_date As OracleParameter = New OracleParameter
    p_end_date.OracleDbType = OracleDbType.Date
    p_end_date.Value = d_end_date
    p_end_date.ParameterName = "toDateParam"


    ''Setup Datatable, connections and pull data
    Dim myDT As New DataTable
    Dim Oconn As New OracleConnection(my_CREDS & my_COMMS)

    Dim Ods As New DataSet
    Dim Ocommand As OracleCommand = New OracleCommand("select " & _
        "username as Recipient, " & _
        "to_char(CreatedDate,'YYYY-mm-dd HH24:MI:SS') as CREATEDDATE " & _
        "from " & _
        "tbl.one " & _
        "where " & _
        "CreatedDate >= :fromDateParam " & _
        " and CreatedDate < :toDateParam;", Oconn)
    Ocommand.Parameters.Add(p_start_date)
    Ocommand.Parameters.Add(p_end_date)
    Using Oda As New OracleDataAdapter(Ocommand)
        Oda.Fill(myDT)
    End Using
    Ocommand.Dispose()

Делая это, он пытается заполнить данные: Oda.Fill(myDT), Кто-нибудь может объяснить почему? Я все еще довольно новичок в запросах Oracle DB.

1 ответ

Решение

После того, как я немного повозился, я обнаружил, что добавил ; в конце оператора SQL, взятого из исходного оператора в Oracle SQL Developer. После удаления этот код работает как мечта!

Другие вопросы по тегам