文档解释
ORA-01945: DEFAULT ROLE[S] already specified
Cause: The default roles clause has been given twice.
Action: Use only on default role clause.
ORA-01945错误代表指定的默认角色已存在。因此,建议在防止重复角色之前检查指定的默认角色及其状态。
官方解释
ORA-01945:DEFAULT ROLE[S]已指定
每个用户只能够指定一个默认角色,因此当试图指定一个新的默认角色,而系统发现已存在一个默认角色时,ORACLE会出错,返回错误ORA-01945。
常见案例
1、用户直接运行命令: ALTER USER userid DEFAULT ROLE anyrole;
2、重新登陆时,用户的默认角色已经变成了准备指定的anyrole
正常处理方法及步骤
1、要改变当前用户的默认角色,可以使用ALTER USER DEFAULT ROLE ;
2、首先应查看当前用户账号的默认角色。可以使用SELECT UPPER(DEFAULT_ROLE)……FROM USER$ WHERE NAME = ‘’;
3、如果发现有多个默认角色则会出现ORA-01945错误。这时可以使用ALTER USER DEFAULT ROLE none;来清除所有的已存在的默认角色。
4、重新执行步骤1来正确设置默认角色。