如何使用SQLPlus成功连接到Oracle数据库

时间:2015-03-17 20:23:44

标签: oracle oracle11g sqlplus

我一直在尝试使用SQLPlus在我的计算机和Oracle数据库之间建立连接。

我正在使用命令:

sqlplus USERNAME@server.domain.com:4075/DBNAME.WORLD

它一直在回归:

TNS:could not resolve the connect identifier specified

tnsnames.ora包含:

DBNAME.WORLD =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = server.domain.com))(PORT = 4075))
   )
(CONNECT_DATA =
  (SID = DBNAME)
  (SRVR = DEDICATED)
 )
)

我正在使用我的雇主提供的sqlnet文件:

AUTOMATIC_IPC = OFF
TRACE_LEVEL_SERVER = OFF
TRACE_LEVEL_CLIENT = OFF
SQLNET.EXPIRE_TIME = 0
NAMES.DEFAULT_DOMAIN = world
NAME.DEFAULT_ZONE = world
SQLNET.CRYPTO_SEED = "ENCRYPTIONSEED"
SQLNET.ENCRYPTION_CLIENT = REJECTED
SQLNET.ENCRYPTION_TYPES_CLIENT = (DES40)
SQLNET.ENCRYPTION_SERVER = REJECTED
SQLNET.ENCRYPTION_TYPES_SERVER = (DES40)
SQLNET.CRYPTO_CHECKSUM_CLIENT = REJECTED
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT = (MD5)
SQLNET.CRYPTO_CHECKSUM_SERVER = REJECTED
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = (MD5)
NAMES.DIRECTORY_PATH = (TNSNAMES)
SQLNET.AUTHENTICATION_SERVICES = (BEQ,NONE)

如何解决此问题“无法解决连接标识符”错误并打开与我的oracle数据库的连接?

2 个答案:

答案 0 :(得分:1)

如果您的tnsnames.ora文件中有该条目,则不必再次提及服务器名称和端口。

这就足够了 -

sqlplus USERNAME@DBNAME.WORLD

(如果您希望它提示输入密码)

或者你可以像OldProgrammer在评论中所说的那样可以使用明文密码。

答案 1 :(得分:0)

虽然其他人对你应该如何连接是正确的:

sqlplus USERNAME@DBNAME.WORLD

也可以选择使用命令行中的密码,tnsnames.ora文件中也存在问题,这会导致您仍然获得ORA-12154: TNS:could not resolve the connect identifier specified

connect_data行没有缩进,which is invalidating the whole file。缩进无论如何都有助于理解文件,但在这里至关重要:

  

配置文件中任何包含一个或多个关键字 - 值对的参数的关键字必须位于一行的最左侧列中。如果它被一个或多个空格缩进,则它被解释为前一行的延续。

因此,请确保与别名相关的行都在其下方缩进,只有别名在行的开头处开始。

在主机键/值对之后还有一个额外的右括号,即使文件正确缩进也会导致错误。

DBNAME.WORLD =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = server.domain.com)(PORT = 4075))
    )
    (CONNECT_DATA =
      (SID = DBNAME)
      (SERVER = DEDICATED)
    )
  )