● Sep 4, 2001 (Tue) 9:29 - DBMS_JOB 罠にはまる. SYNC_INDEX を DBMS_JOB で実行しようとしたんだけど, connect mikage/******** var jobno number begin DBMS_JOB.submit(:jobno, ' begin CTX_OUTPUT.START_LOG(''ctx_auto''); CTX_DDL.SYNC_INDEX(''mikage.scan_data_tidx''); end; ', trunc(sysdate+1/24*3,'HH')+1/24/2, 'trunc(SYSDATE+1/24*3,''HH'')+1/24/2', TRUE); commit; end; / とやってJOB投入には成功. しかし, ORA-12012: ジョブ41の自動実行エラーが発生しました ORA-06550: 行3、列1: PLS-00201: 識別子CTX_OUTPUTを宣言してください。 ORA-06550: 行3、列1: PL/SQL: Statement ignored ORA-06550: 行4、列1: PLS-00201: 識別子CTX_DDLを宣言してください。 ORA-06550: 行4、列1: PL/SQL: Statement ignored うまくいかない. CTXSYS.CTX_OUTPUT みたいにフルに修飾してもダメだし, CTXSYSユーザーでJOB投入してもダメ. CTXSYSユーザーで投入すると, ORA-12012: ジョブ61の自動実行エラーが発生しました ORA-20000: Oracle Textエラー: DRG-10017: これを実行するにはCTXSYS or MIKAGEであることが必要です: SYNC ORA-06512: "CTXSYS.DRUE", 行157 ORA-06512: "CTXSYS.CTX_DDL", 行1327 ORA-06512: 行4 というエラーに‥‥‥ (CTXSYSで実行してるんですが(爆)) DBMS_JOB は新しくセッションを開くので,ROLE が効かない というのは知っていますが,その対策法がよくわからず. OracleText 使う時の CTXAPP ROLE は,単なるダミーロールっぽく 中身は何もないし. むぅ〜・・・ |
|