Oracle中Basic与TNS的区别以及与Oracle三种连接方式的关系(附Navicat 12.1连接oracle常见问题)
最近工作中遇到客户给的oracle连接是TNSName格式,之前没有见过这样的格式,于是研究了下。
首先附上客户给的oracle连接:
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.32)(PORT = 1551)) (CONNECT_DATA = (SERVER = CWDB) (SERVICE_NAME = CWDB) ) )
然后百度了下这种连接方式,发现Oracle其实是有三种连接方式的,感谢这位博主的文章:
https://blog.****.net/u012062455/article/details/52442838
然后尝试用Navicat 12.1连接数据库,发现一些连接参数看不懂。百度了下没找到类似的问题解答,下面说下自己的感悟吧,不一定对,不对的地方希望大神帮忙改正:
1:连接类型。
这里连接类型有两种:Basic和TNS两种。
我的理解是。Basic是基础的连接类型,可以支持SID和ServiceName两种连接方式连接Oracle,
TNS支持用TNSName的方式连接Oracle。
测试用连接类型改为TNS,参数改为上面的,可以连接成功:
2.服务名和SID
服务名对应ServiceName的连接方式,SID对应的是SID的连接方式。只要将对应的service_name和sid输入即可。(此处没有测试。)
另Navicat12.1有时候会因为和oracle版本不一样连接不上,需要修改这里的配置:
工具—选项—环境:
这个网上很多,可以多备用几个。更改完需要重启。