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 は,単なるダミーロールっぽく
中身は何もないし.

むぅ〜・・・



2024年10月
29
0
30
0
01
0
02
0
03
0
04
0
05
0
06
0
07
0
08
0
09
0
10
0
11
0
12
0
13
0
14
0
15
0
16
0
17
0
18
0
19
0
20
0
21
0
22
0
23
0
24
0
25
0
26
0
27
0
28
0
29
0
30
0
31
0
01
0
02
0

TmmDiary / Copyright 2001 Ymirlink,Inc. & Mikage Sawatari
このアドレスにはメールを送らないで下さい.
Don't send mail to this address.
hina@mikage.to