Преобразование OracleDbType.Date в Date недопустимо - PullRequest
1 голос
/ 20 мая 2019

Я пытаюсь сделать следующее из OracleCommand.Parameter:

Хранимая процедура:

PROCEDURE GetDate(inParam IN VARCHAR2, outDate OUT DATE) AS
    BEGIN
        SELECT MAX(DateVal) INTO outDate
        FROM Table1
        WHERE Col1 = inParam;
    EXCEPTION 
        WHEN no_data_found THEN
        outDate:= NULL;
END GetDate;
Dim returnDate as Date?

Using Connection = New OracleConnection(connectionString)
Using Command As OracleCommand = Connection.CreateCommand()

Connection.Open()
Command.CommandType = CommandType.StoredProcedure
Command.CommandText = "GEN_PACKAGE.GetDate"
Command.Parameters.Add("inParam", inParam).Direction = ParameterDirection.Input
Command.Parameters.Add("outDate", OracleDbType.Date).Direction = ParameterDirection.Output
Command.ExecuteNonQuery()

If Not CType(Command.Parameters("outDate").Value, INullable).IsNull Then
    returnDate = CDate(Command.Parameters("outDate").Value)
End If

End Using
End Using

Однако выдается следующее исключение:

Exception thrown: 'System.InvalidCastException' in Microsoft.VisualBasic.dll

Additional information: Conversion from type 'OracleDate' to type 'Date' is not valid.

Какой смысл OracleDbType.Date, если он не может быть преобразован в тип даты .NET? Как я могу взять свой OracleDbType.Date и передать его из своей функции как .NET Date (или Date ?, я пробовал оба)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...