Отказ от транзакции с Oracle - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь отменить транзакцию с Oracle 12c с помощью этого сценария:

DECLARE
v_xid   SYS.xid_array;
BEGIN
v_xid := sys.xid_array ('0700200003030000');
DBMS_FLASHBACK.transaction_backout (numtxns => 1, xids => v_xid, options => 
DBMS_FLASHBACK.cascade);
END;
/

Я получаю эту ошибку:

ORA-06550: Ligne 2, colonne 9 :
PLS-00201: l'identificateur 'SYS.XID_ARRAY' doit être déclaré

Как я могу это исправить?

1 Ответ

0 голосов
/ 15 ноября 2018

Вы подключаетесь с DBA привилегиями? Если нет, уверены ли вы, что у вас есть необходимые разрешения для взаимодействия с SYS объектами? Как обычный пользователь, вы не сможете взаимодействовать с некоторыми SYS объектами, если вам явно не предоставлен доступ. Это особенно верно, если вы работаете в базе данных организации, поскольку это обычное явление, когда все гранты аннулируются с роли PUBLIC.

Если это случай с разрешениями, вы ничего не можете сделать, чтобы исправить это самостоятельно. Если у вас есть доступ, вы можете попробовать подключиться с ролью SYSDBA. Если у вас нет такого доступа, вам нужно будет запросить его у DBA, который управляет базой данных.

Если это ваша база данных, которую вы используете для тестирования / обучения, и вы не уверены, я бы порекомендовал проверить документацию Oracle по ролям по следующей ссылке: https://docs.oracle.com/database/121/DBSEG/authorization.htm#DBSEG004

Вот также отличная статья, в которой немного рассказывается о схеме SYS и роли SYSDBA. https://asktom.oracle.com/pls/asktom/f?p=100:11:0%3A%3A%3A%3AP11_QUESTION_ID:2659418700346202574

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...