ORA-01109 运行 脚本时数据库未打开错误

ORA-01109 Database not open error while running a script

我正在 运行在创建额外表空间的 Oracle 数据库中使用 SQLPlus 创建一个脚本。这是脚本的代码:

CREATE TABLESPACE FAR_YELLOW_FISH
DATAFILE
    '$ORADATA/node03/faryellowfish01.dbf' SIZE 200M,
    '$ORADATA/node03/faryellowfish02.dbf' SIZE 200M;
CREATE TABLESPACE WET_BROWN_SOUP
DATAFILE
    '$ORADATA/node01/wetbrownsoup01.dbf' SIZE 100M,
    '$ORADATA/node03/wetbrownsoup02.dbf' SIZE 100M;
CREATE TABLESPACE EASY_ORANGE_DISK
DATAFILE
    '$ORADATA/node03/easyorangedisk01.dbf' SIZE 100M,
    '$ORADATA/node03/easyorangedisk02.dbf' SIZE 100M,
    '$ORADATA/node02/easyorangedisk03.dbf' SIZE 100M,
    '$ORADATA/node02/easyorangedisk04.dbf' SIZE 100M;
CREATE TABLESPACE WET_YELLOW_OVEN
DATAFILE
    '$ORADATA/node01/wetyellowoven01.dbf' SIZE 100M;

在此之前我运行以下内容:

sqlplus /nolog
connect / as sysdba
create SPFILE from PFILE;
startup nomount

和创建主表空间的脚本 - 它工作正常。 当 运行 运行我首先提到的脚本时,出现以下错误:ORA-01109: database not open。它出现在每个 CREATE TABLESPACE 表达式中。 作为解决方案,我尝试 运行 ALTER DATABASE OPEN; 但答案是 ORA-01507: database not mounted。 我想,脚本有问题,但不确定。 我该如何解决?

您的启动脚本没有启动数据库。

要启动数据库,请执行以下操作:

sqlplus /nolog
connect / as sysdba
startup

此外,不要在 SQL 脚本中使用环境变量(即 $ORADATA)。 sqlplus 不会知道它们是什么意思。包括完整路径。