我在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"
答案 0 :(得分:1)
注意并非所有SQL*Plus
命令都必须在 SQL Developer 中运行。另外,它取决于SQL Developer版本,最新版本有很多SQL * Plus命令支持。
我在 SQL Developer版本3.2.20.10
中进行了测试 &
用于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 Developer
中DEFINE TABLESPACE1 = &TABLESPACE1
<Enter the value when prompted> -- I entered "t"
old:DEFINE TABLESPACE1 = &TABLESPACE1
new:DEFINE TABLESPACE1 = t
SQL错误:ORA-00959:tablespace'&amp; TABLESPACE1'不存在
- 00000 - “tablespace'%s'不存在”
醇>
您确定在 SQL Developer 中将其作为脚本执行。您可以按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>
在您的情况下,如果值被正确替换,并且表空间存在,您应该能够创建表。
答案 1 :(得分:0)
您似乎输入了一个值&#39;&amp; TABLESPACE1&#39;进入TABLESPACE1替换变量。也许你有替代扫描。尝试
SET SCAN ON
在你的陈述之前
答案 2 :(得分:0)
我的解决方案:
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>
答案 3 :(得分:-1)
您确定您的表空间名称是:“&amp; TABLESPACE1”?
尝试使用
测试如果您的表空间存在select Tablespace_name from dba_tablespaces
where Tablespace_name = 'yourtablespacename';