[英]sql query to pl sql procedure
这是我的要求。我想从一个表中获取记录并将其存储在另一个临时表中。我写为查询。但不知道如何通过声明变量等来使其成为过程。
每日新客户数据将插入表中。我只想获取从过去 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' ;
//
提前致谢..
您需要创建一个 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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.