indexing - oracle identifier 'ctx_ddl' must be declared - adding a dbms_job -


मैंने अपनी मेज से एक कमांड के साथ एक इंडेक्शन जोड़ लिया है:
CREATE INDEX patient_index ON radiology_record (patient_name) ) INDEXTYPE है CTXSYS.CONTEXT;

और मैं एक DBMS_JOB जोड़ने की कोशिश कर रहा हूं जो इसे अद्यतित रखेगा।
जिस तरह से मैं इस स्क्रिप्ट को चला रहा हूं, उसे कॉल करके SQLPLUS से "@ myscript.sql" <पूर्व> सेट नंबरआउट पर घोषित सर्वर आउटपुट; शुरू करें dbms_job.submit (नौकरी, 'ctx_ddl.sync_index (' 'रोगी_इनडेक्स' ');', अंतराल = & gt; 'SYSDATE + 1/1440'); प्रतिबद्ध; Dbms_output.put_line ('नौकरी' || जॉब || 'प्रस्तुत किया गया है।'); समाप्त;

परिणामस्वरूप त्रुटि PLS-00201: पहचानकर्ता 'CTX_DDL' को घोषित किया जाना चाहिए

मेरे खोज के माध्यम से मुझे किसी के साथ मिल गया है एक ऐसी ही समस्या है और उसका था

मैंने इसे डिबग करने के लिए पर्याप्त समय व्यतीत किया है कि मैंने सोचा कि मैंने जो कुछ सीखा है उसे साझा करने के लिए मित्रा। यह पता चला है कि डीबीएमएस_जॉब केवल आपके स्कीमा उपयोगकर्ता के डिफ़ॉल्ट विशेषाधिकारों को प्राप्त करते हैं, न कि उस उपयोगकर्ता को दिए गए भूमिकाओं से प्राप्त होने वाले किसी भी विशेषाधिकार के लिए। इसका अर्थ है कि नौकरी ctxsys विशेषाधिकार के साथ नहीं चलेगी जो आपको अपने स्कीमा उपयोगकर्ता को दी जानी चाहिए। अच्छा तो इसका क्या मतलब है? इसका मतलब है कि आपको सीटीएक्सएसआईएस उपयोगकर्ता

के रूप में काम को चलाने के लिए है I दुर्भाग्य से इसका उपयोग करने के लिए हां, इसलिए यह होमवर्क है, और मुझे अनुमति देने की अनुमति नहीं है क्योंकि Ctx_ddl पर अपने आप को

क्या किसी के पास यह संकेत है कि मैं इस मुद्दे को कैसे सुलझा सकता हूं? अन्यथा मैं इस हफ्ते तक प्रतीक्षा करूँगा और टीए के साथ परामर्श करूंगा। धन्यवाद धन्यवाद

मैं नहीं लगता है कि एक प्रतिबंध है, क्योंकि स्पष्ट रूप से इस प्रतिबंध को निर्दिष्ट करता है:

आप उपयोगकर्ता द्वारा स्वामित्व वाली प्रक्रियाओं को निष्पादित कर सकते हैं या जिसके लिए उपयोगकर्ता को स्पष्ट रूप से दिया गया है EXECUTE हालांकि, जिन प्रक्रियाओं के लिए उपयोगकर्ता को भूमिकाओं के माध्यम से निष्पादित विशेषाधिकार प्रदान किया जाता है, उन्हें निष्पादित नहीं किया जा सकता।

Comments