为其他用户oracle创建表空间

为其他用户oracle创建表空间,oracle,tablespace,Oracle,Tablespace,我正在使用Oracle 11g和SQL Developer 在我的数据库中,我有两个模式:模式A(与系统非常相似)和模式B。 在模式A中,我创建了另一个用户:模式C。在这里,我想在创建表空间之后立即添加一个表空间 我想要的是:创建一个脚本,该脚本通过模式a在模式C中创建一个表空间 我在模式A中,我尝试下一个代码: CREATE TABLESPACE schemaC.tableSpace_DATA DATAFILE '/u01/app/oracle/oradata/Test/fileName

我正在使用Oracle 11g和SQL Developer

在我的数据库中,我有两个模式:模式A(与系统非常相似)和模式B。 在模式A中,我创建了另一个用户:模式C。在这里,我想在创建表空间之后立即添加一个表空间

我想要的是:创建一个脚本,该脚本通过模式a在模式C中创建一个表空间

我在模式A中,我尝试下一个代码:

CREATE TABLESPACE schemaC.tableSpace_DATA DATAFILE 
  '/u01/app/oracle/oradata/Test/fileName_DATA.DBF' SIZE 10M 
  AUTOEXTEND ON 
  NEXT 56K MAXSIZE UNLIMITED
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT MANUAL;
但是我得到了错误ORA-02180:“创建表空间的选项无效”。问题就在这里:
schemaC.tableSpace\u DATA
,因为如果我删除schemaC,表空间就会被创建,但是在schemaA中,而不是在schemaC中


有什么建议吗?:D

我想你需要换一种方式:

  • 创建表空间
  • 创建新模式并将默认表空间设置为新创建的表空间

  • 请参见

    架构不能为任何人所有。它是不同模式(用户)拥有的段的逻辑容器。请参阅《数据库概念指南》中的一节。因此,您不能说
    CREATE TABLESPACE somechema.TABLESPACE\u name…
    ,因为正确的语法是
    CREATE TABLESPACE TABLESPACE\u name…
    “在模式A中,我创建另一个用户:模式C”,这是非唯一的。您不会“在模式中”创建模式。用户/模式对于Oracle实例来说是全局的。表空间也是如此。它们不是在模式中创建的。同样,它们对于Oracle实例来说是全局的。我想从schemaC创建它。我与系统用户没有联系,因为schemaC拥有几乎相同的权限。谢谢Robe和Yasir。我对结构感到困惑。我认为表空间是模式中的一个元素,而不是数据库中的单个元素。