Получение дополнительной информации из сообщения об ошибке при попытке выполнить параметризованный запрос с помощью ADODB в VBA - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь использовать параметризованные запросы для вставки значений из Excel в мои oracle дБ, используя vba, как в этом учебнике . Это уже работает, если я делаю это без параметризованных запросов. Мой код выглядит так:

    Dim tmp As String
    Dim t As ListObject
    Dim cm As New ADODB.Command

    Set t = Worksheets("Sheet").ListObjects("Table")
    tmp = "insert into db_table1(name, color) values (@name, @color);"

    With cm
        .ActiveConnection = <working connection saved in a global variable>
        .CommandText = tmp
        .CommandType = adCmdText

        Set P1 = .CreateParameter("name", adVarChar, adParamInput, Len(t.DataBodyRange(1, 1)) + 1, t.DataBodyRange(1, 1))
        .Parameters.Append P1
        Set P2 = .CreateParameter("color", adVarChar, adParamInput, Len(t.DataBodyRange(1, 2)) + 1, t.DataBodyRange(1, 2))
        .Parameters.Append P2

        cm.Execute

End With

Я получаю код ошибки

Ora-00936: отсутствует выражение

Видимо, что-то не так с запросом, который производит приведенный выше код, я просто не могу понять, что именно. Есть ли способ получить более подробное сообщение об ошибке или просмотреть запрос, который он пытается выполнить?

...