Выполнить Oracle SQL процедуру 64 бита - Немедленная вставка - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь запустить процедуру из Excel VBA, но она не может быть запущена.

Dim con As New ADODB.Connection
Dim cmd As New ADODB.Command

con.Provider = "OraOLEDB.Oracle"
con.CursorLocation = adUseClient
con.Open "Data Source=*SERVER*;User ID=*USER*;Password=*PASSWORD*;"
Set cmd.ActiveConnection = con

cmd.CommandType = adCmdStoredProc
cmd.CommandText = "TEST_PROCEDURE('Tdb','USERID','18-Feb-2020','19-Feb-2020','N','19-May-2020','N',0,0,0,0,0,0);"
cmd.Execute

con.Close

Где test_procedure содержит

EXECUTE IMMEDIATE 'INSERT /*+ APPEND */ INTO TABLE

Кажется, это залипание точка, потому что он никогда не вставляет никаких данных. Я не могу поделиться всей вставкой. Что-нибудь особенное, что мне нужно сделать для INSERT? Я могу запускать другие процедуры, такие как DELETE FROM TABLE.

Странно, но INSERT работает в 32-битном Excel, но не в 64-битном, который мы сейчас вынуждены обновить. Подключение к таблицам базы данных в порядке, так как я могу запрашивать другие данные. Все коды работают в Oracle SQL Разработчик, он просто не работает в Excel.

Я ссылался на библиотеку объектов данных ActiveX 6.1, я пробовал 2.8 и ничего не изменилось.

...