关于#oracle#的问题:Oracle数据库创建用户指定表空间提示公用用户名或角色名无效

Oracle数据库创建用户指定表空间提示公用用户名或角色名无效。试过在用户名前加C##,提示发生冲突.

img

img

img

创建用户的 DDL 语句语法没错。


根据第3张截图,可以查看Oracle数据库版本 和 用户列表:

SELECT * FROM v$version ;

SELECT * FROM user$ t WHERE t.name LIKE '%用户名%'

其他场景 参考《ORA-65096:公用用户名或角色无效》 排查:

  1. https://blog.csdn.net/weixin_39982537/article/details/116440887
  2. https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_oracle_createuser.html

试试用别的字符,别用##

先执行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
点击“下一步”出现如下界面,在创建数据库的时候将“创建为容器数据库”项取消勾选。
这样就可以了