Windows 中 Oracle 18c 的数据库创建问题

Posted

技术标签:

【中文标题】Windows 中 Oracle 18c 的数据库创建问题【英文标题】:Database Creation Issues for Oracle 18c in Windows 【发布时间】:2020-11-10 23:48:48 【问题描述】:

我正在尝试创建一个包含一些示例表的虚拟数据库,作为学校项目的一部分。我没有使用 Oracle 的经验,所以请多多包涵(如果您对该主题有广泛的了解,这篇文章可能会很好笑)。

基本上,我已经成功安装了适用于 Windows x64 的 Oracle 18c XE,并且一切似乎都安装正确。我只想创建一个数据库,然后在所述数据库中创建几个表,但我遇到了一些错误。

关注Oracle's instructions 创建数据库时,出现以下错误:

不知何故,我发现我需要创建一个 Oracle 实例,所以我做到了,它根据 services.msc 运行。这是它的设置窗口以供参考:

不知道为什么会出现这样的错误,我发现另一个指南建议我通过新安装的 SQL Plus 应用程序打开 Oracle。运行/ as sysdba 后,系统会提示我输入用户名和密码。伟大的。在找到this 之后,我设法找到了我的 tnsnames.ora 和 listener.ora 文件,它们分别如下所示:

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )
DEFAULT_SERVICE_LISTENER = XE

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\Nolan\product\18.0.0\dbhomeXE)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Nolan\product\18.0.0\dbhomeXE\bin\oraclr18.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-495S61D)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

尝试system@"DESKTOP-495S61D:1521/orcl"system@"DESKTOP-495S61D:1521/example" 作为用户名并输入任何密码都会抛出ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

我在 SQL Plus 中输入的任何内容都不适用于用户名。此外,每次我输入用户名时,它都会停止输入任何密码。我不能粘贴任何东西,也不能打字。我不明白我做错了什么或者甲骨文为什么这么恨我。如果有人能了解我的情况并帮助我重回正轨,我将永远感激不尽。

【问题讨论】:

你的第一张图片有跟踪文件;您是否查看过那里以了解有关该错误的更多详细信息? @MT0 我不太明白我在找什么,但这条线出现了几次:[main] [ 2020-11-10 19:02:47.634 EST ] [nativesystem.WindowsNative.Native] Key 'Software\Oracle\Ocr' does not exist 您说您安装了 XE 18c,但您链接到用于常规 Oracle 数据库创建的文档。如果您实际上已经安装了 XE - eXpress Edition - 那么您已经有一个数据库并且您不需要创建一个。 Read the documentation here。除非你没有安装XE?抱歉,如果您对此感到困惑,但请记住 Oracle 是企业级产品,对初学者并不友好。 谢谢@APC 我一直在关注该文档,但问题仍然存在。我决定卸载 Oracle 并重新安装,然后它就开始工作了。 【参考方案1】:

看来您需要创建一个数据库。您的 tnsnames.ora 和 listener.ora 似乎刚刚配置为调用外部 procs。如果您创建了一个默认数据库,那么您将使用 ORCL 作为 SID。

鲍比

【讨论】:

不幸的是,当我尝试通过数据库配置助手创建数据库时,我仍然收到 NullPointerException 消息。还有其他方法可以创建数据库吗? 您看过 18c XE 安装指南吗?您可能没有安装 Java 等所需的东西。 docs.oracle.com/en/database/oracle/oracle-database/18/xeinw/… 我最终卸载/重新安装,第二次一切顺利。感谢您的帮助!

以上是关于Windows 中 Oracle 18c 的数据库创建问题的主要内容,如果未能解决你的问题,请参考以下文章

Windows 2019 下安装Oracle18c

Oracle Database 18c 配置助手失败

oracle database 18C 都来了~~~~

Oracle 18C新特性介绍

18c 与 19c 上的 Oracle 编号问题

Oracle 18C新特性:内联外部表