.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客户端版本一致:- 右键项目 → 属性 → 生成 → 平台目标,选择对应架构;
- 若使用ODP.NET Managed驱动,可保持Any CPU。
验证基础连通性
用Oracle自带的tnsping工具测试服务器可达性:tnsping 192.168.117.1:1521/你的服务名若测试失败,需检查网络防火墙、Oracle监听服务是否正常启动。
内容的提问来源于stack exchange,提问作者user20622377
相关产品推荐
相关产品推荐

