Oracle存储过程之数据库中获取数据实例

怎样才能将在表a取得的数据插入另一个表b中?

  (1)对于表a和表b两个表结构完全相同的话〔字段个数,相应字段的类型等等〕,可以使用

  insert into b select * from a;

  insert into b(field1,field2,field3) select a.field1,a.field2,a.field3 from a;

  (2) 对于两个表如果字段数不一样,但是有几个字段的结构一样时〔类似于父子关系〕,必须使用 insert into b(field1,field2) select a.field1,a.field2 from a;

  1.用带参数的游标实现insert功能:

  create or replace procedure get_data(

  – 参数列表:

n_task_id in number, –任务编号

v_task_name in varchar2, –任务名称

v_name in varchar2 — 名称

)

  ———————————————–

  – procedure名 :get_data —

  – 処理内容 :从数据源表取得符合条件的的数据插入到目标数据表: —

  – 引数 :n_tas_id 任务id, —

  – v_task_namek 任务名称, —

  – v_bdw_name 对数据源表限制条件:本地网名称 —

  ———————————————–

  is

  –插入行数控制

  i_count number(5);

  –取数据游标:data_cur(in_name)

  –参数:本地网名称:in_name

cursor data_cur(in_name varchar2) is /**注意:参数的定义中不带精度**/

select *

from get_data_src a

where a.name = in_name;

begin

  –计数器,控制插入行数

  i_count := 0;

  –循环插入数据

for mycur in data_cur(v_name) loop

insert into abc(

row_id,

task_id,

task_name,

get_data_dt,

cust_id,

assign_flag,

deal_date

)values(

seq_kd.nextval,

n_task_id,

v_task_name,

sysdate,

mycur.cust_id,

‘n’,

null

);

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐