oracle的日期条件查询
现在有多个表(1~n),每个表里面又有很多条记录(具体条数不知道)。现在需要的是,对这些表进行条件查询,把符合查询日期的记录取出来放到一个表中。比如说把各个表中从27-五...
现在有多个表(1 ~ n),每个表里面又有很多条记录(具体条数不知道)。现在需要的是,对这些表进行条件查询,把符合查询日期的记录取出来放到一个表中。比如说把各个表中 从 27-五月 -2004 07:00:00 AM 到 27-六月 -2004 07:00:00 AM 之间的记录拿出来,放到表名为pdbase的表中,请问怎么写程序,十分感谢 所以能进行条件查询,是因为这些表的第一列就是我所描述的日期的形式,所以想根据这个日期,从各个表中选出满足条件的记录。
展开
2013-08-17
展开全部
--如果表个数是不确定的 写个存储过程吧 调用时输入表名作为参数即可自动
--将记录取出插入pdbase表中
create or replace procedure p_name
(M_tablename in varchar) --需要提取数据的表名
as
--定义过程中的变量,变量类型根据自己需要定义,varchar2类型的需带精度
L_column1 varchar2(20);
L_column2 varchar2(20);
L_column3 varchar2(20);
--定义一个游标
CURSOR C_CHARGES IS
select column1,column2,column3 --记录的列多的话,可以多定义几个
from M_tablename
where datetime >=
to_date('2004-05-27 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
and
datetime <=
to_date('2004-06-27 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
begin
OPEN C_CHARGES;
LOOP
FETCH C_CHARGES
INTO L_column1,L_column2,L_column3
EXIT WHEN C_CHARGES%NOTFOUND;
insert into pdbase
(column1,column2,column3)
values
(L_column1,L_column2,L_column3)
end loop;
CLOSE C_CHARGES;
end;
--如果表个数是确定的,且只要查询效果,可直接使用合并查询
select * from t_test_1
where dt>=to_date('2010-04-03 07:00:00', 'yyyy-mm-dd hh24:mi:ss') and
dt<=to_date('2010-04-10 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
union
select * from t_test_2
where dt>=to_date('2010-04-03 07:00:00', 'yyyy-mm-dd hh24:mi:ss') and
dt<=to_date('2010-04-10 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
union
select * from t_test_3
where dt>=to_date('2010-04-03 07:00:00', 'yyyy-mm-dd hh24:mi:ss') and
dt<=to_date('2010-04-10 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
--有几个表,写几个union连接在后面即可 还有什么问题 可以联系我!
--将记录取出插入pdbase表中
create or replace procedure p_name
(M_tablename in varchar) --需要提取数据的表名
as
--定义过程中的变量,变量类型根据自己需要定义,varchar2类型的需带精度
L_column1 varchar2(20);
L_column2 varchar2(20);
L_column3 varchar2(20);
--定义一个游标
CURSOR C_CHARGES IS
select column1,column2,column3 --记录的列多的话,可以多定义几个
from M_tablename
where datetime >=
to_date('2004-05-27 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
and
datetime <=
to_date('2004-06-27 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
begin
OPEN C_CHARGES;
LOOP
FETCH C_CHARGES
INTO L_column1,L_column2,L_column3
EXIT WHEN C_CHARGES%NOTFOUND;
insert into pdbase
(column1,column2,column3)
values
(L_column1,L_column2,L_column3)
end loop;
CLOSE C_CHARGES;
end;
--如果表个数是确定的,且只要查询效果,可直接使用合并查询
select * from t_test_1
where dt>=to_date('2010-04-03 07:00:00', 'yyyy-mm-dd hh24:mi:ss') and
dt<=to_date('2010-04-10 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
union
select * from t_test_2
where dt>=to_date('2010-04-03 07:00:00', 'yyyy-mm-dd hh24:mi:ss') and
dt<=to_date('2010-04-10 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
union
select * from t_test_3
where dt>=to_date('2010-04-03 07:00:00', 'yyyy-mm-dd hh24:mi:ss') and
dt<=to_date('2010-04-10 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
--有几个表,写几个union连接在后面即可 还有什么问题 可以联系我!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |