应该是11g密码区分大小写的缘故,需要在11g中重新设置大写的密码。实际上可以不用通过修改密码的方式来解决,只需要加上“”号即可。
尝试在创建dblink时用“”把密码引起来。
SQL> create database link woo_100
2 connect to prudent
3 identified by "woo"
4 using '(DESCRIPTION =
5 (ADDRESS_LIST =
6 (ADDRESS = (PROTOCOL =TCP)(HOST = 192.168.0.100)(PORT = 1521))
7 )
8 (CONNECT_DATA =
9 (SERVER = DEDICATED)
10 (SID = woo)
11 )
12 )';
Database link created
SQL> alter session setnls_date_format='yyyy-mm-dd hh24:mi:ss';
Session altered
SQL> col sysdate for a20;
SQL> select sysdate from dual@woo_100;
SYSDATE
---------------------------
2013-1-28 22:48:52
测试OK.
参考文献:
Bug 6738104: ORA-01017 ORA-02063 WHILE CONNECTING FROM10G TO 11G VIA PUBLIC DBLINK
Cause
The following Bug 6738104 was logged for this issue which was closed as not abug saying the cause being introduction of password case sensitivity feature in11g
When one creates a database link connection, a user name and password for theconnection needs to be defined. When the database link is created, the passwordis case sensitive. Before a user can connect from a pre-release 11g database toa 11g release database and as the password case sensitivity is enabled bydefault, you must re-create the password for this database link using alluppercase letters.
The reason you need to re-create the password using all uppercase letters is sothat it will match how Oracle Database stores database link passwords. OracleDatabase always stores this type of password in uppercase letters, even if thepassword had originally been created using lower or mixed case letters. If casesensitivity is disabled, the user can enter the password using the case thepassword was created in.