這段時間做sqoop2資料匯出,需要先將資料匯入到中間表,然後將中間表的資料同步到目的表,中間表和目的表字段完全一樣,只是表的名稱不一致。
方式一:觸發器
觸發器:是乙個與表相關聯的、儲存的pl/sql程式。每當乙個特定的資料操作語句(insert,update,delete)在指定的表上發出時,oracle自動地執行觸發器中定義的語句序列。 相當於監視器,對錶中資料進行增,刪,改時候自動工作,如果合法,才讓操作;
1、觸發器作用
資料確認
實施複雜的安全性檢查
做審計,跟蹤表上所做的資料操作等
資料的備份和同步
2、觸發器語法
create [or replace] trigger 觸發器名
on 表名
[for each row [when(條件) ] ]
declare
……begin
plsql 塊
end [觸發器名];
create or replace trigger tgr_name
after insert or update on power_forecast
for each row
begin
if inserting then
insert into t_powergrid_damage_forecast (pid,companyid,dept_code,forest_type,refid,line_fiveh_forecast,line_twoh_forecast,line_one h_forecast,line_thirtyh_forecast,line_tenh_forecast,station_fiveh_forecast,station_twoh_forecast,station_oneh_forecast,station_thirtyh_forecast,platformarea_forecast,user_forecast,spare1,spare2,spare3,create_date,create_userid)
values (:new.pid,:new.companyid,:new.dept_code,:new.forest_type,:new.refid,:new.line_fiveh_forecast,:new.line_twoh_forecast,:new.line_oneh_forecast,:new.line_thirtyh_forecast,:new.line_tenh_forecast,:new.station_fiveh_forecast,:new.station_twoh_forecast,:new.station_oneh_forecast,:new.station_thirtyh_forecast,:new.platformarea_forecast,:new.user_forecast,:new.spare1,:new.spare2,:new.spare3,:new.create_date,:new.create_userid);
end if;
end;
power_forecast : 中間表
t_powergrid_damage_forecast : 目的表
3、刪除觸發器
drop trigger tgr_name
方式
二、儲存過程
儲存過程:一組為了完成特定功能事先編譯好的pl/sql程式塊,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。1、語法
create [or replace] procedure
過程名[(引數名 in/out 資料型別)]
as | is //宣告變數
begin
plsql子程式體;
end [過程名];
create or replace procedure adddata
as fore_date date;
begin
select max(create_date) into fore_date from t_powergrid_damage_forecast;
insert into t_powergrid_damage_forecast
select *
from power_forecast t
where to_char(t.create_date, 'yyyy-mm-dd hh24:mi:ss') > to_char(fore_date, 'yyyy-mm-dd hh24:mi:ss');
commit;
end;
----提交儲存過程
begin
adddata;
end;
----提交儲存過程
call adddata();
刪除儲存過程
兩個Git倉庫之間的同步備份
在團隊開發時通常為了保密性和快速性,都會把git倉庫設定在區域網內。但是考慮到容災備份,最好在另外一台機器上也映象乙份一模一樣的倉庫,以防萬一。假設機器a上已經有了git倉庫test.git,要在機器b上映象這個git倉庫,則需要在機器b上執行 git clone mirror ssh git a ...
兩個hbase集群間同步資料
一.準備階段 1.準備2套能正常執行的hbase集群 new cluster 222 oldcluster 226 2.2套集群的hosts檔案內容都需要包含對方的主機位址 3.zookeeper可以單獨部署2個集群,也可用乙個zookeeper集群管理2套hbase集群,就是不能用hbase自帶的...
執行緒同步 兩個執行緒同步 加鎖
兩個執行緒同步 加鎖 include include include include include define bufsize 4 define number 8 int sum of number 0 int value 0 全域性變數,要注意加鎖 定義兩個變數 訊號量 sem t write...