Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ORA-12154 Oracle DB Windows Can';t连接SQLPlus_Oracle_Sqlplus - Fatal编程技术网

ORA-12154 Oracle DB Windows Can';t连接SQLPlus

ORA-12154 Oracle DB Windows Can';t连接SQLPlus,oracle,sqlplus,Oracle,Sqlplus,我已经检查了stackoverflow中的其他答案,但没有任何答案。我查了一下tnsnames.ora我找不到任何错误。这是我的tnsnames.ora文件的代码 XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-69D6TBS)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)

我已经检查了stackoverflow中的其他答案,但没有任何答案。我查了一下tnsnames.ora我找不到任何错误。这是我的tnsnames.ora文件的代码

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-69D6TBS)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

LISTENER_XE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-69D6TBS)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )
这是我的sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
服务也在运行


与经常出现的问题一样,您没有显示用于启动sqlplus的初始命令。您应该这样开始,在用户名后面加一个“@”符号,然后是网络服务名称,又名tnsnames条目

c:\sqlplus myuser@XE
但缺少这一点,一旦它开始提示您输入用户名和密码,您需要按照提示的用户名和网络服务名称的规范进行操作:

Enter user-name:  username@XE
但事实上,你得到了这个特别的错误是有点令人费解。在不指定网络服务名称的情况下,它应该尝试BEQ连接(根本不使用tns)以连接到由值%ORACLE_SID%标识的本地数据库。在这种情况下,它应该连接或给出一个“协议适配器错误”,它在这个特定用法中得到这个特定错误的事实将向我表明您已经设置了%TWO_TASK%。这将覆盖ORACLE_SID,并告诉sqlplus尝试值为%TWO_TASK%的tns连接

作为旁注,所报告错误的性质意味着请求从未接近侦听器,因此侦听器配置在这一点上并不重要。ORA-12154相当于无法在电话簿中找到某人的姓名。如果你找不到它(它没有列出,或者你使用了错误的电话簿),那么你甚至不能打电话(将请求发送给侦听器)


作为将来的参考,命令窗口的屏幕截图没有从窗口复制和粘贴文本,然后将粘贴的文本格式化为“代码”那样有用。如果您在这里这样做了,您可以向上滚动窗口,以便复制/包括您使用的sqlplus命令。

我使用sqlplus连接到db。它是在安装oracle时创建的db@Shenald请启动Windows CMD shell或PowerShell。从那里输入:C:\>sqlplus system/@XE您现在将连接到CDB。(根容器)。所有用户对象(表、索引、函数等)都将进入可插拔数据库XEPDB1。您可以这样连接到它:sqlplus system/@XEPDB1。。如果将此条目添加到tnsnames.ora文件服务中,请将输出粘贴到问题中。请不要上传任何结果截图。我们只喜欢文本格式的输出,这样我们就可以利用浏览器的搜索功能,当然也可以复制粘贴。@EdStevens完全同意,但在Windows上Oracle使用%local%环境变量。我建议在需要实际的本地连接时完全取消它
set local=
@AndrewSayer-是的,我主要在LInux上工作,但总是忘记在Windows上变量是%local%。“我使用SQLPlus连接到数据库。它是在安装oracle数据库时创建的-”该语句如何解决您被问到的任何问题或提出的问题?我们知道sqlplus是在安装db时创建的。我们知道您试图使用它连接到数据库。