ジョブ内で PL/SQL コードを実行しようとしていますが、(user_scheduler_jobs に示されているように) 実行されていても、クエリが実行されません。単独で実行された場合、クエリは機能することに注意してください。
Begin
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'INSERT_LOG',
job_type => 'PLSQL_BLOCK',
job_action => 'Begin
INSERT INTO PORT_ACCIONES (ACCI_USUARIO, ACCI_NOMBRE_APLICACION, ACCI_ID_PAGINA, ACCI_NOMBRE_PAGINA, ACCI_FECHA, ACCI_HORA)
SELECT APEX_USER, APPLICATION_NAME, PAGE_ID, PAGE_NAME, TO_CHAR(SYSTIMESTAMP - SECONDS_AGO / (60*60*24), ''DD-MM-YYYY''), TO_CHAR(SYSTIMESTAMP - SECONDS_AGO / (60*60*24), ''HH24:MI:SS'')
FROM apex_workspace_activity_log
WHERE APEX_USER, APPLICATION_NAME, PAGE_ID, PAGE_NAME, TO_CHAR(SYSTIMESTAMP - SECONDS_AGO / (60*60*24), ''DD-MM-YYYY''), TO_CHAR(SYSTIMESTAMP - SECONDS_AGO / (60*60*24), ''HH24:MI:SS'')
NOT IN (SELECT ACCI_USUARIO, ACCI_NOMBRE_APLICACION, ACCI_ID_PAGINA, ACCI_NOMBRE_PAGINA, ACCI_FECHA, ACCI_HORA FROM PORT_ACCIONES)
End;',
repeat_interval => 'FREQ=MINUTELY;INTERVAL=1',
start_date => SYSTIMESTAMP,
enabled => TRUE,
comments => 'Llenado de la tabla de logs de manera automatizada');
End;
埋めるのはこれ
CREATE TABLE "PORT_ACCIONES" (
"ACCI_USUARIO" VARCHAR2(255),
"ACCI_NOMBRE_APLICACION" VARCHAR2(255) NOT NULL ENABLE,
"ACCI_ID_PAGINA" NUMBER,
"ACCI_NOMBRE_PAGINA" VARCHAR2(255),
"ACCI_FECHA" VARCHAR2(255),
"ACCI_HORA" VARCHAR2(255)
);
ApEx によって提供されるログを使用して、エントリが繰り返されないようにし、現在使用されているアプリケーションからそれらを取得します。
そうでない場合は、解決策として、APEX_WORKSPACE_ACTIVITY_LOG で新しい挿入が行われたときにレジストリを PORT_ACCIONES テーブルに追加するトリガーを試すこともできますが、
Create or Replace TRIGGER "PORT_LOGS_BI"
before insert on apex_workspace_activity_log
、それは私にメッセージを与えます
ORA-25001: cannot create this trigger type on this type of view. Any suggestions would be of great help.
事前にどうもありがとうございました:)