這是我的要求。我想從一個表中獲取記錄并將其存盤在另一個臨時表中。我寫為查詢。但不知道如何通過宣告變數等來使其成為程序。
每日新客戶資料將插入表中。我只想獲取從過去 10 天到今天日期將 attribute_value 簽名為“TOY_GIFT”的客戶資料。我想每 10 天運行一次這個程式。
CREATE
OR
INSERT INTO
cst_cust_attributes_tmp (ORGANIZATION_ID, CUST_ID, ATTRIBUTE_ID, ATTRIBUTE_SEQ, ATTRIBUTE_VALUE, ACTIVE_FLAG, CREATE_DATE, CREATE_USER, UPDATE_DATE, UPDATE_USER)
SELECT
ORGANIZATION_ID,
CUST_ID,
ATTRIBUTE_ID,
ATTRIBUTE_SEQ,
ATTRIBUTE_VALUE,
ACTIVE_FLAG,
CREATE_DATE,
CREATE_USER,
UPDATE_DATE,
UPDATE_USER
FROM
cst_cust_attributes
WHERE
create_date between to_date(to_char(sysdate - 10, 'DD-MON-YYYY HH:MI:SS AM'), 'DD-MON-YYYY HH:MI:SS AM') and to_date(to_char(sysdate, 'DD-MON-YYYY HH:MI:SS AM'), 'DD-MON-YYYY HH:MI:SS AM')
and attribute_value = 'TOY_GIFT' ;
//
提前致謝..
uj5u.com熱心網友回復:
您需要創建一個 proc 來插入記錄,并設定一個 dbms 作業以每 10 天執行一次。
像,程式:
create or replace procedure LOAD_CUSTOMERS is
BEGIN
INSERT INTO
cst_cust_attributes_tmp (ORGANIZATION_ID, CUST_ID, ATTRIBUTE_ID, ATTRIBUTE_SEQ, ATTRIBUTE_VALUE, ACTIVE_FLAG, CREATE_DATE, CREATE_USER, UPDATE_DATE, UPDATE_USER)
SELECT
ORGANIZATION_ID,
CUST_ID,
ATTRIBUTE_ID,
ATTRIBUTE_SEQ,
ATTRIBUTE_VALUE,
ACTIVE_FLAG,
CREATE_DATE,
CREATE_USER,
UPDATE_DATE,
UPDATE_USER
FROM
cst_cust_attributes
WHERE
create_date between to_date(to_char(sysdate - 10, 'DD-MON-YYYY HH:MI:SS AM'), 'DD-MON-YYYY HH:MI:SS AM') and to_date(to_char(sysdate, 'DD-MON-YYYY HH:MI:SS AM'), 'DD-MON-YYYY HH:MI:SS AM')
and attribute_value = 'TOY_GIFT' ;
COMMIT;
END;
資料庫管理系統作業:
begin
sys.dbms_scheduler.create_job(job_name => 'LOAD_CUSTOMERS_JOB',
job_type => 'STORED_PROCEDURE',
job_action => 'LOAD_CUSTOMERS', -- YOUR PROC NAME
start_date => to_date('05-12-2019 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),
repeat_interval => 'Freq=Daily;Interval=10',
end_date => to_date(null),
job_class => 'DEFAULT_JOB_CLASS',
enabled => true,
auto_drop => false,
comments => '');
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/354682.html