难点介绍:
在CDB内创建用户分配表空间时,所分配的表空间必须在PDB和CDB中同时存在,否则会报错。如果是在PDB与CDB有相同表空间的情况下给CDB用户分配表空间,则会分配CDB的表空间,给用户PDB的表空间并不受影响。所以要在PDB内创建相同的表空间,然后再回CDB创建用户。
Oracle12C开始引入了CDB与PDB的新特性。sqlplus / as sysdba命令默认登陆的是CDB数据库,而CDB数据库中要求所有新建用户用户名必须以c##
开头,否则就会报以上错误,在PDB内创建用户则没有此要求。
查询当前数据库名称 show con_name
查询PDB数据库名称select name,open_mode from v$pdbs;
切换数据库 alter session set container=XEPDB1;
在PDB中创建表空间与数据文件(注意数据文件不能与之前的重名)
create tablespace RUOYI datafile 'D:\oracle\orcleup\oradata\XE\XEPDB1\RUOYI.DBF' size 100m autoextend on next 100m maxsize 500M;
切换回CDB数据库alter session set container=CDB$ROOT;
在cdb下中创建表空间与数据文件(注意数据文件不能与之前的重名)
SQL> create tablespace RUOYI datafile 'D:\oracle\orcleup\oradata\XE\RUOYI.DBF' size 100m autoextend on next 100m maxsize 500M;
这样表空间就创建好了;
如果创建失败可使用下面命令删除表空间
DROP TABLESPACE TEST INCLUDING CONTENTS AND DATAFILES;
创建完表空间就可以创建用户了;(下面是使用命令创建用户)
我在这里使用的Navicat来管理oracle
到此保存就好
接下来测试连接
出现链接成功就可以啦~