Oracle存儲過程之數據庫中獲取數據實例_Oracle應用_腳本之家

介紹oracle數據庫中獲取數據的存儲過程示例 ,在表A取得的數據插入另一個表B中

怎樣才能將在表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
);

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享