oracle-Bezeichner 'ctx_ddl' deklariert werden müssen, ist das hinzufügen der dbms_job
Habe ich einen index für meine Tabelle mit dem Befehl:
CREATE INDEX patient_index ON radiology_record(patient_name) INDEXTYPE IS CTXSYS.CONTEXT;
Und ich versuche, fügen Sie ein DBMS_JOB, die es aktuell zu halten.
Die Art, wie ich dieses Skript aufrufen, "@myscript.sql" von 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;
/
Der resultierende Fehler ist PLS-00201: identifier 'CTX_DDL' must be declared
Durch meine Suche habe ich jemanden gefunden mit einem ähnlichen problem und seine Lösung war
Ich verbrachte genug Zeit
debugging diese, dass ich dachte, es
Verdienter teilen, was ich gelernt habe. Es
stellt sich heraus, dass dbms_jobs nur Erben
Ihre schema-Benutzer die Standard-Berechtigungen,
nicht alle Privilegien, die es Erben könnte
von Rollen erteilt, die Benutzer. Diese
bedeutet, dass der Auftrag nicht ausgeführt mit
die ctxsys Privileg, dass Sie sollten
erteilt haben, Ihre schema-Benutzer. So
was bedeutet das? Es bedeutet, dass Sie
den job als ctxsys-Benutzer
Kann ich leider nicht verwenden, diese zu gewähren, selbst Privilegien zu, da ja, das ist Hausaufgaben, und ich nicht über die Berechtigungen grant execute on ctx_ddl mir.
Hat jemand Hinweise darauf, wie kann ich dieses Problem beheben? Ansonsten werde ich warten, bis später in dieser Woche und Rücksprache mit dem TA.
Dank
InformationsquelleAutor Jean-Bernard Pellerin | 2011-03-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass es einen workaround, da die Dokumentation von
DBMS_JOB
explizit angibt, diese Einschränkung:EXECUTE
Privileg aufCTXSYS.CTX_DDL
- Paket finden Sie unter docs.oracle.com/cd/B28359_01/text.111/b28303/quicktour.htm => sieht aus wieGRANT EXECUTE ON CTXSYS.CTX_DDL TO myuser;
InformationsquelleAutor Vincent Malgrat