一用字符串连接ORCL就报 ORA-12154: TNS: 无法解析指定的连接标识符

ch_815 2015-05-20 08:58:31
我一用字符串连接服务器上的ORCL就报 ORA-12154: TNS: 无法解析指定的连接标识符 ,但是用VS "工具"---->"连接到数据库" 这样连却能连上(SQLPLUS也能连上),字符串绝对正确,肯定是哪里配置有问题,期待大神解惑啊,急急急!!!!
...全文
180 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ch_815 2015-05-20
  • 打赏
  • 举报
回复
不贴了,别人用的都好好的,就是我的机子出问题,打算重装系统了,全部重来.不过还是非常非常感谢您!!!
於黾 2015-05-20
  • 打赏
  • 举报
回复
你还是贴个引用,using,和连接数据库的代码,看你到底是用哪种方式连接的.
ch_815 2015-05-20
  • 打赏
  • 举报
回复
还是不行
於黾 2015-05-20
  • 打赏
  • 举报
回复
你还是直接复制我2楼给你的连接串 然后把红色的部分改成你自己的参数 不要手敲了
於黾 2015-05-20
  • 打赏
  • 举报
回复
Password=***; 最后一个参数没有分号 只有参数和参数之间要加分号. 去掉了再试. Data Source=(DESCRIPTION 注意括号数量要匹配啊
ch_815 2015-05-20
  • 打赏
  • 举报
回复
引用 7 楼 Z65443344 的回复:
如果你用的ORA.dll,那么跟你oracle里怎么配置数据库别名没有关系 你必须按我2楼给出的方式,也就是把tnsnames.ora里的字符串当连接串
我刚才试了一下,
<add connectionString="Data Source=DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = *****)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl));User Id=***;Password=***;" name="BaseConnectString" />
(*号是我改的)还是不行
ch_815 2015-05-20
  • 打赏
  • 举报
回复
引用 10 楼 Z65443344 的回复:
那就奇怪了 为什么我客户端里的tnsnames.ora是这样的形式: DYWMIS_192.10.10.80 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.10.10.80)(PORT = 1521)) ) (CONNECT_DATA = (SID = dywmis) (SERVER = DEDICATED) ) ) 你贴的跟我服务端里的tnsnames.ora格式是一样的. 我一般都是用客户端管理工具去配,还真的从来没这么直接修改过文件.
我的也是用客户端管理工具配的,只是方便观看,我没有修改过啊
於黾 2015-05-20
  • 打赏
  • 举报
回复
那就奇怪了 为什么我客户端里的tnsnames.ora是这样的形式: DYWMIS_192.10.10.80 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.10.10.80)(PORT = 1521)) ) (CONNECT_DATA = (SID = dywmis) (SERVER = DEDICATED) ) ) 你贴的跟我服务端里的tnsnames.ora格式是一样的. 我一般都是用客户端管理工具去配,还真的从来没这么直接修改过文件.
ch_815 2015-05-20
  • 打赏
  • 举报
回复
引用 7 楼 Z65443344 的回复:
如果你用的ORA.dll,那么跟你oracle里怎么配置数据库别名没有关系 你必须按我2楼给出的方式,也就是把tnsnames.ora里的字符串当连接串
我试一下
ch_815 2015-05-20
  • 打赏
  • 举报
回复
引用 6 楼 Z65443344 的回复:
你是在oracle服务端配置的,本机没有再安装oracle客户端?
在本地的客户端配的,本地只安装了ORCL客户端
於黾 2015-05-20
  • 打赏
  • 举报
回复
如果你用的ORA.dll,那么跟你oracle里怎么配置数据库别名没有关系 你必须按我2楼给出的方式,也就是把tnsnames.ora里的字符串当连接串
於黾 2015-05-20
  • 打赏
  • 举报
回复
你是在oracle服务端配置的,本机没有再安装oracle客户端?
ch_815 2015-05-20
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
用ORA.dll是不需要在客户端安装oracle客户端的,它直接通过tcp协议去连接,所以需要传入ip和端口号 而用oracle提供的Oracle.dll去连,很多信息已经在客户端软件里配置过了,不需要再次填写
我这应该属于ORA.dll方式,小弟具体的不是很懂啊,请您不悉赐教啊
ch_815 2015-05-20
  • 打赏
  • 举报
回复
引用 2 楼 Z65443344 的回复:
用ORA.dll去连
连接串应该是这样的形式:

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl))); User Id=user; Password=pwd

用Oracle.dll去连,
连接串应该是这样的形式:
Data Source=orcl_192.168.0.1;user=user;password=pwd
第一张图是我的tnsnames.ora配置,下面的图是WEB.CONFIG的配置
於黾 2015-05-20
  • 打赏
  • 举报
回复
用ORA.dll是不需要在客户端安装oracle客户端的,它直接通过tcp协议去连接,所以需要传入ip和端口号 而用oracle提供的Oracle.dll去连,很多信息已经在客户端软件里配置过了,不需要再次填写
於黾 2015-05-20
  • 打赏
  • 举报
回复
用ORA.dll去连 连接串应该是这样的形式: Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl))); User Id=user; Password=pwd 用Oracle.dll去连, 连接串应该是这样的形式: Data Source=orcl_192.168.0.1;user=user;password=pwd
於黾 2015-05-20
  • 打赏
  • 举报
回复
把连接字符串放出来看 就算是同一个数据库,你用不同的方式去连接,连接字符串也不是都一样的 比如你用oracle.dll,ORCL,ODBC去连,3个连接串都是不一样的.
xian_wwq 2015-05-20
  • 打赏
  • 举报
回复
lz检查下exe所在的路径是不是包含有中文字符

110,561

社区成员

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

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

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