背景:Oracle 19c 創建表用戶的時候,採用11g的語句會報一下錯誤。
ORA-01918: user 'BISTU_ODS' does not exist
原因:oracle從12c開始增加了增加了CDB和PDB的概念,數據庫引入的多租用戶環境(Multitenant Environment)中,允許一個數據庫容器(CDB)承載多個可插拔數據庫(PDB)。CDB全稱為Container Database,中文翻譯為數據庫容器,PDB全稱為Pluggable Database,即可插拔數據庫。在ORACLE 12C之前,實例與數據庫是一對一或多對一關係(RAC):即一個實例只能與一個數據庫相關聯,數據庫可以被多個實例所加載。而實例與數據庫不可能是一對多的關係。當進入ORACLE 12C後,實例與數據庫可以是一對多的關係。下面是官方文檔關於CDB與PDB的關係圖。
解決辦法:
1、 用sys用戶登錄數據庫
2、 show con_name
3、 執行select name,open_mode from v$pdbs;
4、 alter session set container=LHRPDB2;
5、 創建臨時表空間
create temporary tablespace 臨時表空間名稱 tempfile '臨時表空間存儲路徑' size 50m autoextend on next 50m maxsize 20480m extent management local;
6、 創建表空間
create tablespace 表空間名稱 logging datafile '數據存儲路徑' size 50m
autoextend on next 50m maxsize 20480m extent management local;
7、 創建用戶並指定表空間
create user 用戶名 identified by 密碼 default tablespace 表空間名稱 temporary tablespace 臨時表空間名稱;
8、 給用戶授權
grant connect,resource,dba to 用戶名;
9、 可以用新創建的用戶進行連接了
Username :用戶名
Password :密碼
Database:ip:端口/lhrpdb2
關鍵字: tablespace 空間 create