CREATE TABLE TEMP NOLOGGING AS
SELECT A.*,
FROM date_20111226 a
WHERE TYPE5='离子' AND ACC_NAME LIKE '%3%' ;
commit;想把上面这段话写成一个过程,date_20111226 这个是个变量,每周跑一次,下一次在26+7号,这一天,怎么写成
DECLARE
sql_1 varchar2(100);
BEGIN
sql_1:='CREATE TABLE TEMP NOLOGGING AS
SELECT A.*,
FROM date_'||to_char((sysdate-1),'yyyymmdd')||' a
WHERE TYPE5='离子' AND ACC_NAME LIKE '%3%' ;
END; 这样啊,问题在于where后面那个条件应该怎么写,whERE TYPE5='离子' AND ACC_NAME LIKE '%3%' ;本人小菜鸟,知道的人解答下哈
SELECT A.*,
FROM date_20111226 a
WHERE TYPE5='离子' AND ACC_NAME LIKE '%3%' ;
commit;想把上面这段话写成一个过程,date_20111226 这个是个变量,每周跑一次,下一次在26+7号,这一天,怎么写成
DECLARE
sql_1 varchar2(100);
BEGIN
sql_1:='CREATE TABLE TEMP NOLOGGING AS
SELECT A.*,
FROM date_'||to_char((sysdate-1),'yyyymmdd')||' a
WHERE TYPE5='离子' AND ACC_NAME LIKE '%3%' ;
END; 这样啊,问题在于where后面那个条件应该怎么写,whERE TYPE5='离子' AND ACC_NAME LIKE '%3%' ;本人小菜鸟,知道的人解答下哈
CREATE TABLE TEMP NOLOGGING AS
SELECT A.*,
FROM date_20111226 a
WHERE TYPE5=:变量 AND ACC_NAME LIKE '%3%' ;
(
table_name in varchar2, --表名
) as
str_sql varchar2(500);
begin
str_sql:= 'SELECT A.*,
FROM ''||table_name|| a
WHERE TYPE5='离子' AND ACC_NAME LIKE '%3%' ;';
execute immediate str_sql; --动态执行DDL语句
exception when others then
null;
end; 至于每周跑一次,下一次在26+7号,这一天 你可以定个JOB跑
create trigger trigger_temp
on date_20111226
when to_char(sysdate,'DAY HH24:MI:SS')=='MONDAY 19:30:00' --设置每周触发具体时间
begin
--触发的事件,比如调用3楼的存储过程
call proc_test(date_20111226);
end trigger_temp;