2010-07-22 104 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"