今天在实施工作的前期测试中,手工创建数据库链后,始终无法从10g数据库连接到11g数据库,密码和用户名称都是正确的,报错信息为:
SQL> select * from tab@easypoint;
select * from tab@easypoint
*
第 1 行出现错误:
ORA-01017: 用户名/口令无效; 登录被拒绝
ORA-02063: 紧接着 line (起自 EASYPOINT)
查阅资料后发现,11g对密码的存储是区分大小写的,因此在创建从10g到11g的数据库链时,需要通过双引号将密码封起来,形式如下:
create database link easypoint
connect to easypoint identified by "easypoint"
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.1.81)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = cfhidb)
)
)';
找到了问题的根源,解决起来就很容易了:
SQL> create database link easypoint
2 connect to easypoint identified by "easypoint"
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.1.81)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = cfhidb)
)
)'; 3 4 5 6 7 8 9 10
数据库链接已创建。
SQL> select * from tab@easypoint;
未选定行