Create public database link S2DBLINK connect to S2USER identified by S2USER using "NSName"; --NSName表示s2的网络服务名 --在是s1服务器上执行
1.首先在s1上,用net configuration assisant 建立s2的网络连接。比如连接名字为 ss 2。在s1上,建立dblinkcreate database link test connect to S2USER identified by S2USER using 'ss';3,查询 select * from tab@test;
Create public database link S2DBLINK connect to S2USER identified by S2USER using 'NSName';
--NSName表示s2的网络服务名
--在是s1服务器上执行
2。在s1上,建立dblinkcreate database link test
connect to S2USER identified by S2USER
using 'ss';3,查询 select * from tab@test;
---------------- 创建私有链接名 -----------------------------------
create database link sztylf8
CONNECT TO hll IDENTIFIED BY szty2009hll
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.8)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = sztyora)
)
)';-- 其中
-- *(1) hll 是远程数据库的用户名
-- *(2) szty2009hll 是远程数据库的密码
-- *(3) 192.168.5.7 是远程数据库的IP(我这里是用的内网IP,你也可以用外网IP,但是那将影响你的查询速度)
-- *(4) 1521 是远程数据库启用的端口号
-- *(5) sztyora 是远程数据库的SID-- 若要创建公共链接名的话:
create public database link sztylf
......
CONNECT TO scott IDENTIFIED BY bee56915
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.245)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = sztyora)
)
)';
用select * from all_tables@S2DBLINK
提示出错
ORA-12154: TNS: 指定接续的识别子不能解决
我试了多次,一直出上面提到的错误。
s2里有表:user1.m001
语法如下:
select * from user1.m001@S2DBLINK
-- 问你创建 S2DBLINK 的代码是什么?能贴出来不?
Create public database link S2DBLINK connect to S2USER identified by S2USER using 'NSName'
-- 你查找一个这个文件:tnsnames.ora (其默认路径在:$ORACLE_HOME/network/admin 下)-- 有类似如下的代码:# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.SZTYORA245 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.245)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = sztyora)
)
)......-- 其中 SZTYORA245 就是服务名(即 using 'NSName' 中的 NSName 部分就用 SZTYORA245 去替换)
-- 一般应该是大写-- 不知道我这样讲,你能明白不?
ORA-12154: TNS: 无法解析指定的连接标识符是不是需要在本地服务器s1的tnsnames.ora 文件里添加s2的服务名?
原因已经查明。
是由于服务器s1的ORACLE配置文件里没有配置服务器s2的服务名。还有一个问题。
我的服务器s2是加密的服务器,在程序里是先用一个用户USER111和密码pwd111去连接。对目标表没有操作权限。只是去提取用户USER222的加密的密码***,这个密码每天都不一样。这种情况,可以在服务器s1上一次处理,一直使用吗?可以的话,怎么做?
结帖时会考虑的。我也一直在按着给我的指点作测试了。
是在VB里用程序去提取加密后的密码。先结贴了。
谢谢大家了!