ORA-01019从Excel连接到Oracle

时间:2010-07-22 05:53:06

标签: oracle excel-vba oracle10g vba excel

我已经安装了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 个答案:

答案 0 :(得分:1)

我最近发生了以下错误。

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)

我设法通过简单地修改我的连接字符串来解决问题。

从:

 "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"
有人修改/更新了盒子上的组件。

答案 1 :(得分:0)

“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

'关闭连接结束

答案 2 :(得分:0)

(这不适用于评论框)

您至少需要一个驱动程序。 oracle驱动程序是最好的,但Microsoft驱动程序也可以工作。

让我们首先尝试创建一个连接字符串。右键单击桌面并创建一个新的.txt文件。 现在将文本文件重命名为something.udl 双击udl文件。转到“提供商”并选择Microsoft OLEDB Provider for 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"

我希望这有效。

答案 3 :(得分:0)

我们遇到了同样的问题,特别是在Windows 7上使用VB6的Microsoft OleDb驱动程序时。 按照这篇文章中的说明修复了问题: http://prasanth4microsoft.blogspot.com/2010/11/windows7-excel-vba-ora-01019-unable-to.html

答案 4 :(得分:-1)

我也有这个问题,但是它在win10上..在我尝试了很多不同的解决方案之后..最后..它改变了连接字符串以解决这个问题..但我改变了{{1} } "Provider=MSDAORA.1"