在网上查了一下,然后看到大家说了关于12c版本引入的cdb(数据库容器)
和pdb(可插拔数据库)
优化导致的。然后我就去查看了一下。首先你要以更高的权限进去oracle。命令如下:
sqlplus / as sysdba
然后查看一下自己的cdb,可以看到自己的cdb名字。
show con_name
因为我报的错,后面的名字就是我的CDB的名字,说在CDB里面找不到这个表空间。ok,我们来看一下详细的信息,命令下面这个:
select con_id, name, open_mode from v$pdbs;
可以看到可读写的PDB,我是已经修改过的,所以上面只有一个了,一般是两个,然后选择和
con_name
同名的那个,把会话切换到这个PDB上。如果你在这里找不到和con_name
同名的,那么就切换到那个可读写的会话上,比如我这个图的XEPDB1
,他的模式就是READ WRITE
。下面就是切换会话的命令。
alter session set container=XEPDB1;
然后记得把这个可插拔数据库打开一下。
alter pluggable database XEPDB1 open;
我是打开了的已经,所以这里会报错,提示我重复打开了。
ok,到这里就结束了。接下来我再进行用户关联到表空间就合适了。(下面这个是我自己的命令给大家打个样)
alter user c##wateruser default tablespace waterboss;
对了,这个c##
开头是因为oracle更新提出的新要求,要求用户名的前缀必须是这个开头,在表空间问题之前,我没有这个开头,然后就一直报错。
如果有说的不对的欢迎指正,感谢互相学习!