SQL Error: Tablespace does not exist

SQL Error: Tablespace does not exist

我是 运行 这个脚本 sql oracle 开发者:-

DEFINE TABLESPACE1 = "&TABLESPACE1";
CREATE TABLE "DBUSER" 
(   
"USER_ID" VARCHAR2(100 BYTE), 
"USERNAME" VARCHAR2(100 BYTE), 
"CREATED_BY" VARCHAR2(100 BYTE), 
"CREATED_DATE" DATE
) TABLESPACE "&TABLESPACE1" ;

我收到这个错误:-

SQL Error: ORA-00959: tablespace '&TABLESPACE1' does not exist
00959. 00000 -  "tablespace '%s' does not exist"

您确定您的 table space 名称是:“&TABLESPACE1”吗?

尝试测试 如果你的 table space 存在 与 :

select Tablespace_name from dba_tablespaces 
where Tablespace_name = 'yourtablespacename';

注意 SQL Developer 中 运行 并非所有 SQL*Plus 命令都是必需的。另外,这取决于 SQL Developer 版本,最新版本有很多 SQL*Plus 命令支持。

我在 SQL 开发者版本 3.2.20.10

中测试

& 用于 替换变量 in SQL*Plus

例如,

SQL*Plus

SQL> DEFINE TABLESPACE1 = &TABLESPACE1
Enter value for tablespace1: new_tablespace
SQL> SELECT '&TABLESPACE1' from dual;
old   1: SELECT '&TABLESPACE1' from dual
new   1: SELECT 'new_tablespace' from dual

'NEW_TABLESPAC
--------------
new_tablespace

SQL>

SQL开发者

DEFINE TABLESPACE1 = &TABLESPACE1

<Enter the value when prompted> -- I entered "t"

old:DEFINE TABLESPACE1 = &TABLESPACE1
new:DEFINE TABLESPACE1 = t

SQL Error: ORA-00959: tablespace '&TABLESPACE1' does not exist

  1. 00000 - "tablespace '%s' does not exist"

您确定在 SQL 开发人员 中将其作为 脚本 执行吗?您可以按 F5 将其作为脚本执行。您是否将值替换为变量?

例如,

SQL> DEFINE TABLESPACE1 = "&TABLESPACE1"
Enter value for tablespace1: new_tablespace
SQL> CREATE TABLE "DBUSER"
  2  (
  3  "USER_ID" VARCHAR2(100 BYTE),
  4  "USERNAME" VARCHAR2(100 BYTE),
  5  "CREATED_BY" VARCHAR2(100 BYTE),
  6  "CREATED_DATE" DATE
  7  ) TABLESPACE "&TABLESPACE1" ;
old   7: ) TABLESPACE "&TABLESPACE1"
new   7: ) TABLESPACE "new_tablespace"
) TABLESPACE "new_tablespace"
             *
ERROR at line 7:
ORA-00959: tablespace 'new_tablespace' does not exist


SQL>

在您的情况下,如果值被正确替换,并且 table 空间存在,您应该能够创建 table.

您似乎在 TABLESPACE1 替换变量中输入了值“&TABLESPACE1”。也许您关闭了替换扫描。尝试

SET SCAN ON

在你的陈述之前

我的解决方案:

DROP TABLE "DBUSER";
UNDEFINE TABLESPACE1
DEFINE TABLESPACE1 = 'USERS'
CREATE TABLE "DBUSER" 
(   
"USER_ID" VARCHAR2(100 BYTE), 
"USERNAME" VARCHAR2(100 BYTE), 
"CREATED_BY" VARCHAR2(100 BYTE), 
"CREATED_DATE" DATE
) TABLESPACE "&TABLESPACE1." ;
/

SQL> DROP TABLE "DBUSER";
UNDEFINE TABLESPACE1
DEFINE TABLESPACE1 = 'USERS'
CREATE TABLE "DBUSER"
(
"USER_ID" VARCHAR2(100 BYTE),
"USERNAME" VARCHAR2(100 BYTE),
"CREATED_BY" VARCHAR2(100 BYTE),
"CREATED_DATE" DATE
) TABLESPACE "&TABLESPACE1." ;
/
Table dropped.

SQL> SQL> SQL>   2    3    4    5    6    7  alt   7: ) TABLESPACE "&TABLESPACE1."
neu   7: ) TABLESPACE "USERS"

Table created.

SQL>