Oracle数据库创建用户指定表空间提示公用用户名或角色名无效。试过在用户名前加C##,提示发生冲突.
创建用户的 DDL 语句语法没错。
根据第3张截图,可以查看Oracle数据库版本 和 用户列表:
SELECT * FROM v$version ;
SELECT * FROM user$ t WHERE t.name LIKE '%用户名%'
其他场景 参考《ORA-65096:公用用户名或角色无效》 排查:
试试用别的字符,别用##
先执行alter session set "_ORACLE_SCRIPT"=true;
再创建用户 create user TEST01 IDENTIFIED BY TESTE01;
完整例子:
Copyright (c) 1982, 2019, Oracle. All rights reserved.
请输入用户名: / as sysdba
连接到:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PGISLIN MOUNTED
SQL> alter session set container=pgislin;
会话已更改。
SQL> alter database open;
数据库已更改。
SQL> show user
USER 为 "SYS"
SQL> create user test01 identified by test01;
用户已创建。
SQL> conn / as sysdba
已连接。
SQL> create user test01 identified by test02;
create user test01 identified by test02
*
第 1 行出现错误:
ORA-65096: 公用用户名或角色名无效
SQL> alter session set "_ORACLE_SCRIPT"=true;
会话已更改。
SQL> create user TEST03 IDENTIFIED BY TESTE03;
用户已创建。
SQL>
不适用C## 得方法、
创建一个新的数据库
打开 Database Configuration Assistant
点击“下一步”出现如下界面,在创建数据库的时候将“创建为容器数据库”项取消勾选。
这样就可以了