Я добавил индекс в свою таблицу с помощью команды:
CREATE INDEX patient_index ON radiology_record(patient_name) INDEXTYPE IS CTXSYS.CONTEXT;
И я пытаюсь добавить DBMS_JOB, чтобы поддерживать его в актуальном состоянии.
СпособЯ запускаю этот скрипт, вызывая "@ myscript.sql" из SQLPLUS
set serveroutput on
declare
job number;
begin
dbms_job.submit(job, 'ctx_ddl.sync_index(''patient_index'');',
interval=>'SYSDATE+1/1440');
commit;
dbms_output.put_line('job '||job||'has been submitted.');
end;
/
В результате получается ошибка PLS-00201: identifier 'CTX_DDL' must be declared
В результате поиска я нашел кого-то сподобная проблема и его решение было
Я потратил достаточно времени на отладку этого, и мне показалось, что это заслуживает того, чтобы поделиться тем, что я узнал.Оказывается, dbms_jobs наследует только привилегии пользователя схемы по умолчанию, а не любые привилегии, которые он может наследовать от ролей, предоставленных этому пользователю.Это означает, что задание не будет запускаться с привилегией ctxsys, которую вы должны были предоставить пользователю схемы.Так что это значит?Это означает, что вы должны запустить задание от имени пользователя ctxsys
Я, к сожалению, не могу использовать это, чтобы предоставить себе привилегии, так как да, это домашняя работа, и у меня нет разрешений на выполнение на ctx_ddlдля себя.
Кто-нибудь знает, как мне решить эту проблему?В противном случае я буду ждать до конца этой недели и проконсультироваться с ТА.
Спасибо