2010-07-22 96 views
2

我已经安装了Oracle 10g Express Edition。当尝试测试连接时,我收到错误“尝试检索错误ORA-01019的文本时出错”。从Excel连接到Oracle的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 

在此先感谢

+0

ORA-01019的意思是“无法在用户端分配内存”。 – 2010-07-22 07:05:50

+0

首先,重新格式化您的问题的文本 - 将文本移出代码块,修复缩进。 – 2010-07-22 07:07:57

+0

您是否尝试过从SQL * Plus连接到数据库? Apex界面是否运行没有问题? – 2010-07-22 07:08:19

回答

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 

“紧密连接端

+0

如何增加进程堆的大小或切换到旧套电话 – ramesh 2010-07-22 08:25:35

+0

我一直在试图为你谷歌,但我真的找不到具体的答案 – 2010-07-22 08:30:05

+0

我希望这有助于一点,但我无法找到如何做到这一点。 http://msdn.microsoft.com/en-us/library/ms810466.aspx – 2010-07-22 08:34:29

0

(这didnt适合在评论框)

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

让我们先尝试创建一个连接字符串。右键单击桌面并创建一个新的.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" 

我希望这个作品。

+0

谢谢Sjuul Janssen我会试试这个并回复你 – ramesh 2010-07-22 13:04:20

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

我也有这个问题,但它是在Win10 ..后,我已经尝试了很多不同的解决方案,从网..最后..它的工作,以改变连接字符串来解决这个问题..但我改变"Provider=MSDAORA.1""Provider=OraOLEDB.Oracle"