我在我的笔记本机器上,安装了10gORACLE,并以缺省方式创建了一个数据库ORCL, 
在创建数据库连接前,根据本论坛中某个帖子的建议,修改了
D:\oracle\product\10.2.0\db_1\srvm\admin\init.ora中 global_names = FALSE 
并重新启动了数据库服务。
而后在PL/SQL中利用命令创建数据库连接(连接到自身数据库)
create database link testlink connect to dbuser identified by dbpass using 'orcl';
问题1:在PL/SQL的DatabaseLinks中显示名为:TESTLINK.REGRESS.RDBMS.DEV.US.ORACLE.COM
问题2:SELECT * FROM SYS_USER@TESTLINK 时报错:ORA-12154:TNS:无法解析指定的连接标识符。请指教,THANKS!

解决方案 »

  1.   

    请确认 orcl 连接字符串是否有效 
      

  2.   

    在创建dblink的过程中有以下几点需要注意.如果global_names 为true
    那么在创建dblink时需要带oracle默认的域名:否则的话将会报类似于以下的错误:
    ORA-02085 "database link HO.REGRESS.RDBMS.DEV.US.ORACLE.COM connects to HO.WORLD解决方法是:
    把dblink name创建为ho.world(当然你那里可能会有不同的名称)如果global_names为false
    那么按照你自己的名称来创建.我这里的环境:
    SQL> show parameter global_names;NAME TYPE VALUE
    ------------------------------------ ----------- -------------------
    global_names boolean true
    SQL> create PUBLIC database link pub connect to sa identified by "123" using 'hs_sql';SQL> select * from test@pub;
    select * from test@pub
    *
    第 1 行出现错误:
    ORA-02085: 数据库链接 PUB.REGRESS.RDBMS.DEV.US.ORACLE.COM 连接到 HO.WORLD
    SQL> create public database link HO.WORLD connect to sa identified by "123" using 'hs_sql';数据库链接已创建。SQL> SELECT * FROM [email protected];未选定行SQL> alter system set global_names=false;系统已更改。SQL> SQL> create public database link HO connect to sa identified by "123" using 'hs_sql';数据库链接已创建。SQL> desc test@ho;
    名称 
    --------------------------------------------------------------------------------------
    id 
    name 
      

  3.   

    具体可以参照俺滴博客http://cc59.itpub.net/post/1845/113996
      

  4.   

    感谢您的答复,不过我还是不能成功,还望指点迷津,我的测试过程如下SQL*Plus: Release 10.1.0.2.0 - Production on 星期四 6月 22 13:40:48 2006Copyright (c) 1982, 2004, Oracle.  All rights reserved.
    连接到: 
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining optionsSQL> show parameter global_names;NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    global_names                         boolean     FALSE
    SQL> create public database link dblink connect to bizuser identified by "bizpass" using 'orcl';数据库链接已创建。SQL> select usercode,username from sys_user@dblink;
    select usercode,username from sys_user@dblink
                                           *
    第 1 行出现错误:
    ORA-12154: TNS: 无法解析指定的连接标识符
    SQL>
      

  5.   

    如何跟你说呢,CSDN能把屏幕拷贝贴上来吗?还好,可以全选Command窗体中的内容
    Microsoft Windows XP [版本 5.1.2600]
    (C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\huat>tnsping orclTNS Ping Utility for 32-bit Windows: Version 10.1.0.2.0 - Production on 23-6月 -
    2006 22:18:45Copyright (c) 1997, 2003, Oracle.  All rights reserved.已使用的参数文件:
    d:\Oracle\product\10.1.0\Client_1\network\admin\sqlnet.ora
    已使用 TNSNAMES 适配器来解析别名
    Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
    (HOST = 192.168.188.45)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))
    OK (80 毫秒)C:\Documents and Settings\huat>