在本机9i的tnsnames.ora文件配置了一个叫aaa的连接。在pl/sql下建立了一个dblink叫dbl_aaa
在连接查询的时候出现ora-01017的错误,但是用sqlplus连接aaa是成功的,这是问什么。create database link dbl_aaa
  connect to aaa identified by aaa123
  using 'aaa';

解决方案 »

  1.   

    -- 在本地创建两个服务名:
    -- 即修改 tnsnames.ora 文件!
    -- (此文件一般在:$ORACLE_HOME/network/admin 目录下,
    --  如:D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora)
    -- 类似代码如下:# 我本地的服务名
    LYMORA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = luoyoumou)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = lymora)
        )
      )# 远程机器的服务名:
    SZTYORALF7 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.7)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = sztyora)
        )
      )# 192.168.5.7 是远程机器的 IP 地址
    # sztyora 是远程服务器的 Oracle SID
    # SZTYORALF7 是你创建的服务名!-----------------------------------------------------------------------
    # 然后在你本地机器的相应用户(你想哪个用户连接远程机器,就是哪个用户)
    # 下创建一个 DBLink (数据库链接),如:sqlplus /nolog
    conn / as sysdba
    sys@LYMORA> grant create database link to scott;授权成功。已用时间:  00: 00: 00.07-- 此时创建远程数据库链接有两种方法:-- *1) 不依赖你本机器已经新建的远程服务名 ( sztyoralf7 )
    scott@LYMORA> create  database link lf8music
    CONNECT TO music IDENTIFIED BY sztymusic
    using '(DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.8)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVICE_NAME = sztyora)
    )
    )';数据库链接已创建。已用时间:  00: 00: 00.15# *1) sztylf7 是新建的链接名;
    # *2) hll 是远程机器的一个用户;
    # *3) szty2009hll 是远程机器 hll 用户的密码;
    # *4) 192.168.5.7 是远程机器的IP;
    # *5) 1521 是远程机器的 Oracle 端口号; 
    # *6) sztyora 是远程机器的 ORACLE SID;scott@LYMORA> select count(*) from city@sztylf7;  COUNT(*)
    ----------
           397已选择 1 行。已用时间:  00: 00: 05.65-- *2) 依赖你本机器已经新建的远程服务名 ( sztyoralf7 )scott@LYMORA> create database link sztylf7b connect to hll
      2    identified by szty2009hll using 'SZTYORALF7';数据库链接已创建。已用时间:  00: 00: 00.00
    scott@LYMORA> select count(*) from city@sztylf7b;  COUNT(*)
    ----------
           397已选择 1 行。已用时间:  00: 00: 04.48-- 以上创建的都是私有链接(没有 public 关键字)
    -- 若要创建公共链接:
    scott@LYMORA> create public database link sztylf7b connect to hll
      2    identified by szty2009hll using 'SZTYORALF7';-- 此时你本地数据库的其他用户可以用此链接连接到远程数据库!-- 删除链接:
    drop database link sztylf7b; -- 删除私有链接
    drop public database link sztylf7b; -- 删除公共链接