ORA-01019 подключение к Oracle из Excel - PullRequest
2 голосов
/ 22 июля 2010

Я установил Oracle 10g Express Edition. При попытке проверить соединение появляется сообщение об ошибке «Ошибка при попытке получить текст для ошибки ORA-01019».

Ниже мой код.

  strConnection = "Driver={Microsoft ODBC for 
  Oracle};Server=Servername;Uid=username;Pwd=password;"    
  Set conn = CreateObject("ADODB.Connection")
  conn.Open strConnection

  conn.Close
  Set conn = Nothing

Заранее спасибо

Ответы [ 5 ]

1 голос
/ 17 июня 2011

У меня недавно произошла следующая ошибка.

System.Runtime.InteropServices.COMException (0x80004005): ORA-01019: unable to allocate memory in the user side
at ADODB.ConnectionClass.Open(String ConnectionString, String UserID, String Password, Int32 Options)

Мне удалось решить проблему путем простого изменения строки подключения.

from:

 "Provider=MSDAORA.1;Data Source=tprss;Persist Security Info=True;User ID=myUser;Password=myPassword"

Кому:

   "Provider=MSDASQL;Data Source=tprss;Persist Security Info=True;User ID=myUser;Password=myPassword"

кто-то изменил / обновил компоненты на коробке.

0 голосов
/ 29 апреля 2016

У меня тоже была эта проблема, но она есть на win10 .. После того, как я попробовал множество различных решений из Интернета ... Наконец-то .. это сработало, чтобы изменить строку подключения для решения этой проблемы .. Но я изменил "Provider=MSDAORA.1" на"Provider=OraOLEDB.Oracle"

0 голосов
/ 22 июля 2010

(Это не помещалось в поле для комментариев)

Вам нужен хотя бы один драйвер. Драйвер оракула лучше, но Microsoft Driver тоже будет работать.

Давайте сначала попробуем создать строку подключения. Щелкните правой кнопкой мыши на рабочем столе и создайте новый файл .txt. Теперь переименуйте ваш текстовый файл в нечто .udl Дважды щелкните файл UDL. Перейдите к «Поставщику» и выберите Microsoft OLEDB Provider для Oracle. Затем нажмите на следующий. В поле имени сервера вы вводите свое имя TNS. Затем введите имя пользователя и пароль и вставьте V в поле «Разрешить сохранение пароля» (оно нам понадобится). Нажмите на тестовое соединение. Убедитесь, что это работает.

Если это работает, нажмите ОК. Теперь откройте файл UDL с помощью текстового редактора. Вы увидите нечто похожее на:

[oledb]
; Everything after this line is an OLE DB initstring
Provider=MSDAORA.1;Password=yourpw;User ID=youruser;Data Source=yourTNS;Persist Security Info=True

Скопируйте эту часть в строку подключения:

Provider=MSDAORA.1;Password=yourpw;User ID=youruser;Data Source=yourTNS

Теперь ваша строка подключения должна выглядеть так:

Conn = "Provider=MSDAORA.1;Password=yourpw;User ID=youruser;Data Source=yourTNS"

Я надеюсь, что это работает.

0 голосов
/ 06 июня 2011

У нас была такая же проблема, особенно в Windows 7 при использовании драйвера Microsoft OleDb от VB6.Следуя инструкциям в этом посте исправлена ​​проблема: http://prasanth4microsoft.blogspot.com/2010/11/windows7-excel-vba-ora-01019-unable-to.html

0 голосов
/ 22 июля 2010

"ORA-01019 не может выделить память на стороне пользователя

Причина: распределитель памяти на стороне пользователя возвратил ошибку.

Действие: увеличить размер кучи процесса или переключиться настарый набор вызовов. "

Продолжение комментариев:

Не могли бы вы попробовать этот код?

Dim Cn As ADODB.Connection
Dim CP As ADODB.Command
Dim Rs As ADODB.Recordset
Dim Conn As String
Dim QSQL As String

'Connect to Oracele server begin
Conn = "DRIVER={ORACLE ODBC DRIVER};SERVER=Service name;UID=username;PWD=password;DBQ=Service name;DBA=W;APA=T;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;FRL=F;MTS=F;CSR=F;PFC=10;TLO=O;"

Set Cn = New ADODB.Connection

With Cn
     .ConnectionString = Conn
     .CursorLocation = adUseClient
     .Open
End With

If Cn.State = adStateOpen Then
    MsgBox "Connection successful."
End If

'Connect to Oracle server end


'close connection begin

Cn.Close
Set Cn = Nothing
Set CP = Nothing

'закрыть соединение

...