You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET控制台程序连接Oracle SQL遇ORA-01019错误求助

解决ORA-01019错误的建议

ORA-01019错误通常因无法在客户端分配内存引发,结合你的场景,可尝试以下方案:

  • 更换官方Oracle数据提供程序
    MSDAORA是老旧的OLEDB驱动,已被Oracle弃用,对新版本Oracle兼容性极差。建议改用Oracle官方的ODP.NET驱动(优先选Oracle.ManagedDataAccess.Client,无需额外安装Oracle客户端),示例代码如下:

    using Oracle.ManagedDataAccess.Client;
    
    // 注意替换服务名(默认可能是ORCL或XE)
    OracleConnection con = new OracleConnection("Data Source=192.168.117.1:1521/你的服务名;User ID=*****;Password=*****;");
    con.Open();
    
    OracleDataAdapter oda = new OracleDataAdapter("Select * from BAKASHOT_PIRTY_MEIDA", con);
    DataTable dt = new DataTable();
    oda.Fill(dt);
    
    con.Close();
    

    可通过NuGet直接安装Oracle.ManagedDataAccess包。

  • 修正OLEDB连接字符串
    若坚持使用MSDAORA,需补充完整的Oracle连接参数(IP+端口+服务名/实例名),示例格式:

    OleDbConnection con = new OleDbConnection(
        "Provider=MSDAORA;" +
        "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.117.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=你的服务名)));" +
        "User ID=*****;Password=*****;Unicode=True"
    );
    
  • 匹配平台架构
    确保你的项目平台(x86/x64)与安装的Oracle客户端版本一致:

    1. 右键项目 → 属性 → 生成 → 平台目标,选择对应架构;
    2. 若使用ODP.NET Managed驱动,可保持Any CPU。
  • 验证基础连通性
    用Oracle自带的tnsping工具测试服务器可达性:

    tnsping 192.168.117.1:1521/你的服务名
    

    若测试失败,需检查网络防火墙、Oracle监听服务是否正常启动。

内容的提问来源于stack exchange,提问作者user20622377

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:55:19