暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle ROWTYPE声明在备用数据库中引发ORA-16000错误

ASKTOM 2019-11-07
512

问题描述

嗨,汤姆,

您能否澄清一下,为什么我在备用数据库中出现以下错误。

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> select log_mode, open_mode, database_role from v$database;

LOG_MODE     OPEN_MODE            DATABASE_ROLE
------------ -------------------- ----------------
ARCHIVELOG   READ ONLY WITH APPLY PHYSICAL STANDBY

SQL> DECLARE
  tst_row  dual%ROWTYPE;
BEGIN
  SET TRANSACTION READ ONLY;
END;
/
DECLARE
*
ERROR at line 1:
ORA-16000: database or pluggable database open for read-only access


谢谢。

专家解答

看起来像只虫子。我们尝试编译类型定义并将其临时存储在表中 (当然不允许)

同样转载于18年和19年。即使使用临时撤消或全局临时表,您仍然会得到它。

我有更多的信息给你。假设你计划做一些 “真正的” 工作,即,DML等... 然后你可以重定向你的匿名块到主要,例如:

SQL> DECLARE
  2    tst_row  dual%ROWTYPE;
  3  BEGIN
  4    null;
  5  END;
  6  /
DECLARE
*
ERROR at line 1:
ORA-16000: database or pluggable database open for read-only access

SQL> alter session enable adg_redirect_plsql;

Session altered.

SQL> DECLARE
  2    tst_row  dual%ROWTYPE;
  3  BEGIN
  4    null;
  5  END;
  6  /

PL/SQL procedure successfully completed.



文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论