如何在oracle中,每天早上5点建立一张表
来源:百度知道 编辑:UC知道 时间:2024/09/28 12:26:32
我想每天早上5点的时候,在oracle 数据库中建立如下面语句的一张表
create talbe xin20090201 as ----表名字为 xin+年月日
select * from moba
请问如何实现.好象要通过存储过程,我看了2天书也没看明白.请高人指点
请详细写下代码,好么?
create talbe xin20090201 as ----表名字为 xin+年月日
select * from moba
请问如何实现.好象要通过存储过程,我看了2天书也没看明白.请高人指点
请详细写下代码,好么?
create or replace PROCEDURE SP_CREATE_TABLE
(
on_flag OUT NUMBER,
out_reason OUT VARCHAR2
)
is
v_sql varchar2(2000);
v_now_date varchar2(8);
v_table_name varchar2(3);
begin
select to_char(sysdate,'yyyymmdd') into v_now_date from dual;
select 'xin' into v_table_name from dual;
v_sql :='create table '||v_table_name||''||v_now_date||'';
v_sql :=v_sql || ' as select * from moba';
EXECUTE IMMEDIATE v_sql;
commit;
EXCEPTION
WHEN OTHERS
THEN
on_flag := SQLCODE;
out_reason := SUBSTR (SQLERRM, 1, 255);
ROLLBACK;
END;
运行前执行:(用你拥有dba权限的用户授权,否则可能将来运行时会报错)
grant create any table to 用户;
grant create procedure to 用户;
至于每天5点启动,那你就用job调用吧,还用再教么?
用job
建个存储过程,用来执行创建表的语句
建job定时调用该存储过程
SQL Server里有作业。没用过oracle ..应该差不多吧