oracle - 使用 EZCONNECT 语法时 sqlplus 收到 ORA-12504

标签 oracle oracle11g tns

与此人有相反的问题。 TNSPING OK but sqlplus gives ORA-12154?

我正在尝试在 VMWare Workstation 中的虚拟机上安装 Oracle。 我尝试在以下位置安装 Oracle 11g 和 12c:

  • Windows Server 2008 R2
  • Windows Server 2012 R2
  • Windows Server 2016 技术预览版 3(出于无奈)

在每种情况下,我都会收到“未满足最低要求”的对话框。 当我检查 AppData 中的安装日志时,我得到了这个。

Checking whether the IP address of the localhost could be determined... SEVERE: CVU do not support target environment

我尝试将我的虚拟机设置为使用 NAT 以及桥接连接。 根据此线程,可以忽略“CVU 错误”。 https://community.oracle.com/thread/2478769

Oracle 每次都会成功安装,并且会自动在我的 tnsnames.ora 文件中插入一个条目。我可以通过执行 sys@TNS_ENTRY as sysdba

sys 用户身份进行连接

但是当我尝试使用 EZCONNECT 语法时,它不起作用。例如:

>sqlplus /nolog
>connect sys@localhost:1521/service

然后,我收到 ORA-12504:TNS:Listener 未在 CONNECT_DATA 中给出 SERVICE_NAME。这很奇怪,因为我什至没有尝试使用 tnsnames.ora 文件中的条目进行连接。我尝试在网络管理器的 sqlnet.ora 配置管理器中推广 EZCONNECT。

我已经验证 Oracle 安装程序确实将名为“LISTENER”的监听器放置在我的计算机上

我有另一台在裸机上运行 Windows Server 2012 R2 的服务器。我交叉检查了所有 tns、监听器和 sqlnet 配置及其所有相同的内容(由 11g 安装程序创建的默认配置)

我知道 VMWare 在其虚拟机上支持 Oracle 数据库。我尝试坚持此处列出的这些最佳实践。 http://www.vmware.com/files/pdf/partners/oracle/Oracle_Databases_on_VMware_-_Best_Practices_Guide.pdf

我检查了 lsnrctl 以确保它正确加载配置。 当我重新启动监听器时,我会看到我的端点

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=mymachinename)(PORT=1521)))

防火墙已关闭。

这是 tnsping 的结果:

C:\Users\Administrator>tnsping localhost

TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 - Production on 17-SEP-2015 11:36:02

Copyright (c) 1997, 2010, Oracle. All rights reserved.

Used parameter files: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\sqlnet.ora

Used EZCONNECT adapter to resolve the alias Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))) OK (0 msec)

^看起来和我的 2012 R2 裸机服务器上的 tnsping 完全一样,上面有 11g,可以正常工作。

我在这里错过了一些非常简单的东西吗?我对此已经束手无策了。

最佳答案

这是 EZCONNECT 语法的问题,而不是数据库配置的问题,如所述 here作者:马克·威廉姆斯。连接字符串中的正斜杠会混淆 EZCONNECT,必须像这样转义:

C:\>sqlplus sys@\"localhost:1521/orcl12\" as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Fri Sep 18 13:10:19 2015

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Enter password:

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>

关于oracle - 使用 EZCONNECT 语法时 sqlplus 收到 ORA-12504,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32637919/

相关文章:

java - 从不同的类调用 jdbc 连接获取 "java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver"

oracle - 使用 EF4 将 Int32 转换为 Oracle number(5)

java - Hibernate 删除/插入数据库阻塞锁

java - 格式日期时间在日志中生成错误

sql - 如何将记录从字母数字更新为仅数字?

sql - Oracle 更新列 LTRIM 和 RTRIM

c - 使用Visual Studio用Oracle 11g开发C程序,但我不知道如何一起设置所有程序

oracle - 使用瘦 JDBC 客户端通过 LDAP/OID 查找解决 Oracle SID 的问题

javascript - Nativescript ios - 命令 xcodebuild 失败,退出代码为空

android - × 组件 tns-core-modules 未安装。 × 组件 tns-android 未安装。 × 组件 tns-ios 未安装