c# 连接Oracle报错

jsnjlhb 2015-01-20 09:11:39
现在有个项目,需要连接Oracle,在XP下都是正常的,但是在Win7平台下,有些电脑也可以,有些电脑就是连不上。
我连接语句如下

string myConnString6 =CPublic.GetYBQZJConnectStr();
OracleConnection myConnection6 = new OracleConnection(myConnString6);
myConnection6.Open();
System.Data.OracleClient.OracleDataAdapter mytest6=new OracleDataAdapter(strsql,myConnection6);
DataSet mDt=new DataSet ();
mytest6.Fill(mDt);

myConnString6 为
[code=csharp]]"SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.0.100.242)(PORT=1521)) \t(CONNECT_DATA=(SERVICE_NAME=xxzx)));user id=xxzx;password=xxzx"
[/code通过跟踪发现myConnection6.Open();报错,报错如下:
ORA-00162 external dbid length 106 is greate than maximum
...全文
161 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsnjlhb 2015-01-21
  • 打赏
  • 举报
回复
问题已经解决了。 因为客户所装WIN7版本是一样的,Oracle版本也是一样的,在这种情况,有些电脑可以连接有些电脑连接不上,所以可以确认的是,微软的System.Data.OracleClinet.dll有Bug,于是下载了Microsoft .NET Framework 1.1 Service Pack 1 安装后问题就解决了
於黾 2015-01-21
  • 打赏
  • 举报
回复
你先简单的把\t去掉试试 \t在不同系统中翻译成不同的东西,有的翻译成2空格,有的翻译成4空格.你这里放入多余的空格本身就是无意义的行为
jsnjlhb 2015-01-21
  • 打赏
  • 举报
回复
引用 4 楼 steal_dream 的回复:
我再告诉你一个关于Oracle报错的诀窍,Oracle报错时,那句话是对当前错误状态的描述。拿你刚才这句来讲! ORA-00162 external dbid length 106 is greate than maximum! ORA-00162是错误状态码,后面的句子是对造成该错误的描述:external dbid length 106 is greate than maximum翻译过来就是外部DBID长度106比最大值高。意思就是DBID的长度超过了最大值。但是你在不同的机器上出现问题,有可能是不同的Oracle版本之间的限制不同,或者不同系统之间的限制不同。所以你把数据库名称长度改小一点。所以你以后再遇到Oracle问题时,先翻译一下后面这句话,大概就知道问题所在了!
其实之前我已经翻译这个问题,网上也有这个错误的说明,但是不知道该怎么去解决 有人说把数据库名称长度改小,可我数据库的名称并不长啊,并没有106位啊 关键是现在客户所装的WIN7版本,Oracle版本都是一样的
jsnjlhb 2015-01-21
  • 打赏
  • 举报
回复
引用 2 楼 steal_dream 的回复:
你数据源名称太长了,把他改短一点!
如何修改呢?我对Oracle不太熟悉
steal_dream 2015-01-20
  • 打赏
  • 举报
回复
我再告诉你一个关于Oracle报错的诀窍,Oracle报错时,那句话是对当前错误状态的描述。拿你刚才这句来讲! ORA-00162 external dbid length 106 is greate than maximum! ORA-00162是错误状态码,后面的句子是对造成该错误的描述:external dbid length 106 is greate than maximum翻译过来就是外部DBID长度106比最大值高。意思就是DBID的长度超过了最大值。但是你在不同的机器上出现问题,有可能是不同的Oracle版本之间的限制不同,或者不同系统之间的限制不同。所以你把数据库名称长度改小一点。所以你以后再遇到Oracle问题时,先翻译一下后面这句话,大概就知道问题所在了!
jsnjlhb 2015-01-20
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
win7分32位和64位 不要只知道某些可以某些不可以,到底什么环境不可以,先搞明白了 如果是64位下不行,把程序编译成x86
Win7都是32位,安装的时候都是选择32位安装的 奇怪的是有些电脑可以有些不可以
steal_dream 2015-01-20
  • 打赏
  • 举报
回复
你数据源名称太长了,把他改短一点!
於黾 2015-01-20
  • 打赏
  • 举报
回复
win7分32位和64位 不要只知道某些可以某些不可以,到底什么环境不可以,先搞明白了 如果是64位下不行,把程序编译成x86

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧