oracle 在可插入数据库ORAPDB1中处理当前DDL语句时遇到错误:表空间“INTERVENTION_TBS”不存在

lhcgjxsq  于 2023-04-29  发布在  Oracle
关注(0)|答案(3)|浏览(341)

我使用的是oracle 12c,在尝试将表空间属性给用户时遇到了一点麻烦。
下面是我在可插拔数据库ORAPDB1中处理当前DDL语句时得到的错误:
表空间“INTERVENTION_TBS”不存在
请注意,表空间已成功创建。有人能提出解决方案吗?
为了获得更多细节,我使用了以下语法查询

CREATE USER c##DBAINTERVENTION 
    Identified by interventiondb 
    Default Tablespace INTERVENTION_TBS 
    Temporary Tablespace INTERVENTION_TempTBS;
93ze6v8z

93ze6v8z1#

运行以下语句:

alter session set "_ORACLE_SCRIPT"=TRUE;

ALTER USER [username] IDENTIFIED BY [password];
t3irkdon

t3irkdon2#

您正在尝试创建一个可以访问CDB中所有PDB的普通用户。由于用户可以访问所有PDB,因此也可以在这些PDB上创建对象,因此我们需要表空间来创建对象。这就是为什么需要在所有PDB上的CREATE USER命令中指定表空间的原因。
请使用以下查询验证INTERVENTION_TBS表空间是否存在于所有PDB上。

select cp.pdb_name 
from cdb_pdbs cp join v$tablespace tb on(cp.con_id=tb.con_id) 
where tb.name='INTERVENTION_TBS';

此查询列出了具有表空间的所有PDB。如果在您的PDB中没有这个表空间,那么创建一个。

kiz8lqtg

kiz8lqtg3#

我遇到了类似的问题,对我来说,解决方案是使用默认配置文件和container = all创建用户。

CREATE USER c##DBAINTERVENTION 
    Identified by interventiondb 
    Default Tablespace INTERVENTION_TBS 
    Temporary Tablespace INTERVENTION_TempTBS
    PROFILE DEFAULT
    ACCOUNT UNLOCK container = all;

相关问题