当前位置: 代码迷 >> C# >> c# 连接Oracle报错,该怎么解决
  详细解决方案

c# 连接Oracle报错,该怎么解决

热度:67   发布时间:2016-05-05 05:02:30.0
c# 连接Oracle报错
现在有个项目,需要连接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 
------解决思路----------------------
win7分32位和64位
不要只知道某些可以某些不可以,到底什么环境不可以,先搞明白了
如果是64位下不行,把程序编译成x86
------解决思路----------------------
我再告诉你一个关于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问题时,先翻译一下后面这句话,大概就知道问题所在了!
------解决思路----------------------
你先简单的把\t去掉试试
\t在不同系统中翻译成不同的东西,有的翻译成2空格,有的翻译成4空格.你这里放入多余的空格本身就是无意义的行为
  相关解决方案