64位Oracle 11g R2的客户端连接时报ORA-01019错误
在Win8企业版64位环境下,连接Oracle11g 服务端,搞了整整两天,特将过程分享出来,供有需要的同学参考。
本机环境:
1、服务端:Oracle 11g R2 64位,安装路径E:/Org12
官方下载:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
2、客户端:
(1)Instant Client ,轻量级,安装路径E:/Oracle11/client
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
(2)32-bit Oracle Data Access Components (ODAC) with Oracle Developer Tools for Visual Studio,安装路径E:/Org12/Product/11.2.0/client_1
http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html?ssSourceSiteId=otncn
用客户端三种工具去连Oracle服务端,结果:
第一种:Oracle自带的SQL Deveploer工具,基本没问题!也不需要什么客户端配置。
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
第二种,用PL/SQL 9.0去连,需要copy服务端的XX\app\oracle\product\11.2.0\server\network\ADMIN\tnsnames.ORA文件到客户端(1)的network\ADMIN下,并删除不需要的部分,保留内容大致如下:
ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) (CONNECT_DATA = (SID =ORCL) ) )
并用如下方式启动PL/SQL
set Path=E:/Oracle11/client rem 服务端路径: E:\Org12\product\11.2.0\dbhome_1\BIN set ORACLE_HOME=E:/Oracle11/client set TNS_ADMIN=E:/Oracle11/client set NLS_LANG=AMERICAN_AMERICA.AL32UTF8 start E:/Oracle11/PL_SQL/plsqldev.exe
此时OK。
第三种,用第三方工具,OracleSQLHandle,自带JRE,很小,也很好用,网上搜一下。
我们公司开发的一个工具组件去连服务端,问题来了,先是报下面这个错
怀疑是环境变量问题,多次尝试后,加入客户端路径到Path中,报下面错:
怀疑是字符集,用BAT修改为与Oracle服务端一致的编码,错误改为:
这个问题网上查找很久,尝试的解决方法很多,但最终我的方案是:
1、删除Oracle服务端;方法可以在网上搜,要删干净;
2、删除ODAC及所有组件;
3、保留Instant Client及其安装目录,主要是network\ADMIN\tnsnames.ORA
4、重新安装Oracle服务端;
此时接所有客户端连接完全正常!
小结:
1、刚开始怀疑是64位Oracle驱动路径(x86)引起的bug,最后得出的结论是同一台机器,最好不要装两个Oracle客户端 ,服务端+客户端也不推荐,会引起一些潜在的问题,原因不明。
2、64位的Oracle服务端+32位的Oracle客户端,会有一些潜在的问题,最好32位对32位。
3、安装Oracle 11g R2 EX时,会在环境变量Path前面加上“e:\Org12\app\oracle\product\11.2.0\server\bin;;”,注意是两个分号,须删除一个;这个不知道是安装程序的BUG?
参考的一些资源:
http://blogs.msdn.com/b/apgcdsd/archive/2011/05/25/linked-server-ssis-oracle.aspx
http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/96048ef5-ef9e-4b1c-b8a3-5d7b91d55adb
补充:后来尝试,还有一种解决方案:直接官方下载并安装Oracle 32位客户端即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2011-09-20 关于婚姻,你能事先回答这些问题吗?(来自网络)