Pav*_*cek 5 oracle tablespaces oracle-12c
因此,我以 SYSDBA 的身份连接到 Oracle 并尝试运行此命令:
create user C##demo identified by demopassword;
Run Code Online (Sandbox Code Playgroud)
以创建用户结束。
然后我运行:
alter user C##demo default tablespace PAVEL_DATA temporary tablespace PAVEL_TEMP;
Run Code Online (Sandbox Code Playgroud)
以错误结束:
ORA-00959: 表空间 'PAVEL_DATA' 不存在
但是如果我运行这个命令:
SELECT TABLESPACE_NAME, STATUS, CONTENTS
FROM USER_TABLESPACES;
Run Code Online (Sandbox Code Playgroud)
我可以看到表空间:
TABLESPACE_NAME STATUS CONTENTS
------------------------------ --------- ---------
SYSTEM ONLINE PERMANENT
SYSAUX ONLINE PERMANENT
TEMP ONLINE TEMPORARY
USERS ONLINE PERMANENT
UNDOTBS2 ONLINE UNDO
PAVEL_DATA ONLINE PERMANENT
PAVEL_TEMP ONLINE TEMPORARY
Run Code Online (Sandbox Code Playgroud)
那么,为什么在创建表空间时会出现错误表空间不存在?
编辑
根据评论继续,这是我运行时看到的select tablespace_name, con_id from cdb_tablespaces:
TABLESPACE_NAME CON_ID
------------------------------ ----------
PAVEL_DATA 1
PAVEL_TEMP 1
SYSTEM 4
SYSAUX 4
TEMP 4
USERS 4
TABLESPACE_NAME CON_ID
------------------------------ ----------
SYSTEM 3
SYSAUX 3
TEMP 3
USERS 3
EXAMPLE 3
PAVEL_TEMP 3
PAVEL_DATA 3
Run Code Online (Sandbox Code Playgroud)
因此,这两个表空间都是在 DB$ROOT (id=1) 和可插入数据瓶 (id>2) 中创建的。但是,当连接到可插拔数据库时,我仍然遇到相同的错误。一定是愚蠢的事情,但我现在瞎了……
创建普通用户时,使用以下子句指定的任何默认表空间、临时表空间或配置文件必须存在于属于 CDB 的所有容器中:
默认表空间 临时表空间 配额 轮廓
根据您更新的输出,PAVEL_DATA容器 number 中似乎不存在表空间4。
此外,如果当前关闭的 PDBS 上不存在指定的默认/临时表空间,则带有 or 子句的 or 命令可能CREATE USER会成功。但是,当您尝试使用刚刚创建或更改的普通用户打开或连接这些新打开的 PDB 时,可能会出现错误。ALTER USERDEFAULT TABLESPACEDEFAULT TEMPORARY TABLESPACE
示范:
SQL> create user c##_sales_hr identified by password default tablespace tbs_sales;
create user c##_sales_hr identified by password default tablespace tbs_sales
*
ERROR at line 1:
ORA-65048: error encountered when processing the current DDL statement in
pluggable database ORAPDB1
ORA-00959: tablespace 'TBS_SALES' does not exist
SQL> select tablespace_name, con_id from cdb_tablespaces;
TABLESPACE_NAME CON_ID
------------------------------ ----------
SYSTEM 1
SYSAUX 1
UNDOTBS1 1
TEMP 1
USERS 1
TBS_SALES 1
SYSTEM 4
SYSAUX 4
TEMP 4
ORAPDB1_TBS1 4
MGMT_ECM_DEPOT_TS 4
11 rows selected.
SQL> alter session set container=orapdb1;
Session altered.
SQL> create tablespace tbs_sales datafile '+DATA' size 50M;
Tablespace created.
SQL> conn / as sysdba
Connected.
SQL> create user c##_sales_hr identified by password default tablespace tbs_sales;
User created.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56073 次 |
| 最近记录: |