日期:2014-05-17  浏览次数:21099 次

请问tnsnames.ora文件中的数据库别名为什么要加符号“.”才可以,谢谢
比如:STEPDEVE   这个就不可以
STEPDEVE   =
    (DESCRIPTION   =
        (ADDRESS_LIST   =
            (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   10.3.1.29)(PORT   =   1521))
        )
        (CONNECT_DATA   =
            (SERVICE_NAME   =   STEPDEVE)
        )
    )
比如STEPDEVE_1.1   这个就可以,只要STEPDEVE_1.1   中有一个符号“.”就可以,这是为什么?谢谢
STEPDEVE_1.1   =
    (DESCRIPTION   =
        (ADDRESS_LIST   =
            (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   10.3.1.29)(PORT   =   1521))
        )
        (CONNECT_DATA   =
            (SERVICE_NAME   =   STEPDEVE)
        )
    )

------解决方案--------------------
对于tnsname别名,不存在你说的这种情况,几乎可以输入任何合法的字符作为tnsname别名(当然没有具体研究过哪些字符不合法,哪些合法,但你说的两种形式都可以,这是可以确定的).针对你的问题,你仔细查一下tnsnames.ora文件里第一个配置最顶行STEPDEVE前面是不是有空格字符串,
如果有的话,连接很难成功.
------解决方案--------------------
STEPDEVE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.3.1.29)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = STEPDEVE)
)
)
为什么不可以?我看了我的tnsnames.ora文件我觉得没有什么问题,以下是我的
OEMREP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = MYBILL)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = OEMREP)
)
)

------解决方案--------------------
不会吧 我的TNS就没有用“.”也能连接成功呢,是不是有什么特殊字符啊
------解决方案--------------------
我怀疑你是不是同时把service_name=STEPDEVE也给改了,因为
ORA-12154: TNS:could not resolve service name,那个service_name是不能随便改的,
只有最顶行的那个名称才可以以任何形式的字串存在的.