ORA-16000
尝试更新某些行,但因 ORA-16000 而失败。
SQL> update employees set first_name = 'Ed' where last_name = 'Chen';
update employees set first_name = 'Ed' where last_name = 'Chen'
*
ERROR at line 1:
ORA-16000: database or pluggable database open for read-only access
对于 11g 或更早版本,错误代码相同,但消息略有不同。
ORA-16000: database open for read-only access
ORA-16000表示你要进行数据操作的数据库处于READ ONLY模式,你应该通知DBA打开它为READ WRITE。
让我们看看当前数据库的状态。
数据库
对于容器数据库 (CDB) 或非 CDB,我们可以这样检查状态:
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY
可插拔数据库 (PDB)
对于 PDB,我们可以这样检查状态:
SQL> select open_mode from v$pdbs where name = 'ORCLPDB';
OPEN_MODE
----------
READ ONLY
解决方案
为了解决ORA-16000,我们应该打开数据库进行READ WRITE。打开 READ WRITE 的方式取决于您所在的数据库类型。
对于普通数据库(非CDB)或根容器(CDB),我们应该将数据库重启为READ WRITE,即先关机再开机。
对于一个PDB,我们不用重启它,只需要使用OPEN FORCE通过SYSDBA将READ ONLY 转换为READ WRITE 。
SQL> alter pluggable database orclpdb open force;
Pluggable database altered.
SQL> select open_mode from v$pdbs where name = 'ORCLPDB';
OPEN_MODE
----------
READ WRITE
我们解决了。
原文标题:How to Resolve ORA-16000: database or pluggable database open for read-only access
原文作者:Ed Chen
原文链接:https://logic.edchen.org/how-to-resolve-ora-16000-database-or-pluggable-database-open-for-read-only-access/
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。