oracle存储过程提问:oracle 用存储过程将某一表里符合条件的数据查出来之后,批量插入另一张表中

2024-12-02 18:45:19
推荐回答(4个)
回答1:

先把表创建起来,然后用insert语句插入。
create or replace procedure P_Insert(v_date in varchar2,v_cp varchar2) is
begin
INSERT INTO ora201301 SELECT * FROM bh
WHERE 字段名1 BETWEEN v_date||'/01' AND v_date||'/31' AND 字段名2=v_cp;
COMMIT;
end P_Insert;

回答2:

亲,最后要打个斜杠才表示要执行程序啊,而且你这只是创建存储过程,假设编译没问题的话,它只是创建了一个存储过程,并没有执行。要执行还得用
EXEC monthdataeximport(...,...);

回答3:

create or replace procedure monthdataeximport
(v_date1 in varchar2,
v_cp1 in varchar2)
as
begin
create table ora20013001 as
select * from bh
where date1 between to_date(v_date1,'yyyymmddhh24miss')+1 and to_date(v_date1,'yyyymmddhh24miss')+31
and cp1=v_cp1;
end monthdataeximport;

没测试,你得保证你定义的变量和bh表里的数据类型一致。
不行你就弄个第三方工具吧,用sqlplus最不得劲了

回答4:

写个procedure,利用Cursor循环插入