【问题标题】:ORA-01019 connecting to Oracle from ExcelORA-01019 从 Excel 连接到 Oracle
【发布时间】:2010-07-22 05:53:06
【问题描述】:

我已经安装了 Oracle 10g 快捷版。尝试测试连接时出现错误“尝试检索错误 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

提前致谢

【问题讨论】:

  • ORA-01019 表示“无法在用户端分配内存”。
  • 首先,重新格式化您的问题文本 - 将文本移出 [code] 块,修复缩进。
  • 您是否尝试过从 SQL*Plus 连接到数据库? Apex 界面运行没有问题吗?
  • 在 Q 中,您说您正在检索文本。你的意思是从 Excel 中检索?因为关于 DB 我只看到插入

标签: oracle excel oracle10g vba


【解决方案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"

有人修改/更新了盒子上的组件。

【讨论】:

    【解决方案2】:

    "ORA-01019 无法在用户端分配内存

    原因:用户端内存分配器返回错误。

    操作:增加进程堆的大小或切换到旧的调用集。”

    来自 cmets 的跟进:

    你能试试这个代码吗?

    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
    

    '关闭连接端

    【讨论】:

    • 如何增加进程堆的大小或切换到旧的调用集
    • 我一直在尝试为您搜索,但我无法找到具体的答案
    • 我希望这会有所帮助,但我找不到如何去做。 msdn.microsoft.com/en-us/library/ms810466.aspx
    • 其实我是从 excel 连接的,这是个问题
    • 这不是问题。我已经尝试为您寻找一个可行的示例。也许你应该试试这个。 (在帖子中查找代码)
    【解决方案3】:

    (这不适合评论框)

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

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

    我希望这有效。

    【讨论】:

    • 谢谢 Sjuul Janssen 我会试试这个并回复你
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      我也有这个问题,但它是在 win10 上。在我尝试了很多不同的 web 解决方案之后。最后..它可以更改连接字符串来解决这个问题..但我将 "Provider=MSDAORA.1" 更改为"Provider=OraOLEDB.Oracle"

      【讨论】:

        猜你喜欢
        • 2019-05-27
        • 1970-01-01
        • 2016-08-30
        • 2020-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多