。。有這樣一個需求:
兩個表,表A 是資訊表,表B 是歷史表,表B中除了表A中的欄位,還多一個"型別"欄位;
我要將表A中的資料,更新到表B中,同時表B中的"型別"欄位中自動填充由A.a欄位對應的一個型別;
不知道表述清楚了沒有,路過的大神幫我看看 能不能用觸發器 來實作~
(百度發現 觸發器的種類很多,語法也多,而且基本上好像都是校驗能否insert/update/delete的資料格式的,不知道能不能實作我想要的功能,求大神解惑,灰常感謝。。)
uj5u.com熱心網友回復:
我要將表A中的資料,更新到表B中,同時表B中的"型別"欄位中自動填充由A.a欄位對應的一個型別;A 中一個欄位,要填充到表 B 的兩個欄位 ?
uj5u.com熱心網友回復:
是這樣的,A.a 是一些序列號,這些序列號會分組;我要在B中 保存該序列號的同時,在另一個欄位中 保存該序列號對應的分組類別!!我的想法是,在B中保存序列號的同時,觸發一個觸發器,自動填充分組類別!!!不知道能否實作~
uj5u.com熱心網友回復:
給一些測驗資料,再給你的想要的結果;uj5u.com熱心網友回復:
===============================================
我做了表資料 但是不知道怎么上傳檔案。。。。。。
uj5u.com熱心網友回復:
資料源 表
--------------------------------------------------------
-- DDL for Table DX_SEND_HISTORY
--------------------------------------------------------
CREATE TABLE "ZFXX"."DX_SEND_HISTORY"
( "ID" VARCHAR2(30 BYTE),
"SMSID" VARCHAR2(30 BYTE),
"MOBILE" VARCHAR2(12 BYTE),
"SERVICENUM" VARCHAR2(8 BYTE),
"SMS" VARCHAR2(400 BYTE),
"REPORT" VARCHAR2(1 BYTE),
"PRIORITY" VARCHAR2(1 BYTE),
"BUSIID" VARCHAR2(50 BYTE),
"SYSTEMID" VARCHAR2(3 BYTE),
"TYPE" VARCHAR2(2 BYTE),
"CHANNELID" VARCHAR2(10 BYTE),
"OPERATORS" VARCHAR2(10 BYTE),
"SUBSYSID" VARCHAR2(5 BYTE),
"SENDCOUNT" NUMBER(*,0),
"PROCNAME" VARCHAR2(30 BYTE),
"WRITETIME" DATE,
"DELAYEDTIME" DATE,
"SENDTIME" DATE,
"SUCCESSFLAG" VARCHAR2(8 BYTE),
"MSGID" VARCHAR2(30 BYTE),
"RECVTIME" DATE,
"REPORTSTAT" VARCHAR2(2 BYTE),
"REPORTINFO" VARCHAR2(200 BYTE),
"STEPNOW" VARCHAR2(1 BYTE),
"MONTHDAY" VARCHAR2(2 BYTE),
"OPTUSERNAME" VARCHAR2(20 BYTE),
"SHOWFLAG" VARCHAR2(10 BYTE)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ;
REM INSERTING into ZFXX.DX_SEND_HISTORY
SET DEFINE OFF;
Insert into ZFXX.DX_SEND_HISTORY (ID,SMSID,MOBILE,SERVICENUM,SMS,REPORT,PRIORITY,BUSIID,SYSTEMID,TYPE,CHANNELID,OPERATORS,SUBSYSID,SENDCOUNT,PROCNAME,WRITETIME,DELAYEDTIME,SENDTIME,SUCCESSFLAG,MSGID,RECVTIME,REPORTSTAT,REPORTINFO,STEPNOW,MONTHDAY,OPTUSERNAME,SHOWFLAG) values ('20161201141451000000195','1234','18844067333',null,'1111',null,'1','D00001','123',null,null,'1',null,null,null,null,null,null,null,null,null,'2',null,null,null,null,null);
Insert into ZFXX.DX_SEND_HISTORY (ID,SMSID,MOBILE,SERVICENUM,SMS,REPORT,PRIORITY,BUSIID,SYSTEMID,TYPE,CHANNELID,OPERATORS,SUBSYSID,SENDCOUNT,PROCNAME,WRITETIME,DELAYEDTIME,SENDTIME,SUCCESSFLAG,MSGID,RECVTIME,REPORTSTAT,REPORTINFO,STEPNOW,MONTHDAY,OPTUSERNAME,SHOWFLAG) values ('20161201141451000000196','2345','18844067333',null,'2222',null,'2','D00002','123',null,null,'1',null,null,null,null,null,null,null,null,null,'3',null,null,null,null,null);
Insert into ZFXX.DX_SEND_HISTORY (ID,SMSID,MOBILE,SERVICENUM,SMS,REPORT,PRIORITY,BUSIID,SYSTEMID,TYPE,CHANNELID,OPERATORS,SUBSYSID,SENDCOUNT,PROCNAME,WRITETIME,DELAYEDTIME,SENDTIME,SUCCESSFLAG,MSGID,RECVTIME,REPORTSTAT,REPORTINFO,STEPNOW,MONTHDAY,OPTUSERNAME,SHOWFLAG) values ('20161201141451000000197','3456','18844067333',null,'3333',null,'3','D00003','123',null,null,'1',null,null,null,null,null,null,null,null,null,'3',null,null,null,null,null);
uj5u.com熱心網友回復:
要更新資料的 目標 表
--------------------------------------------------------
-- DDL for Table TJ_SEND_HISTORY
--------------------------------------------------------
CREATE TABLE "ZFXX"."TJ_SEND_HISTORY"
( "MX_ID" VARCHAR2(20 BYTE),
"REQUEST_ID" VARCHAR2(30 BYTE),
"DX_ID" VARCHAR2(30 BYTE),
"SMSID" VARCHAR2(30 BYTE),
"MOBILE" VARCHAR2(12 BYTE),
"SERVICENUM" VARCHAR2(8 BYTE),
"SMS" VARCHAR2(400 BYTE),
"REPORT" VARCHAR2(1 BYTE),
"PRIORITY" VARCHAR2(1 BYTE),
"BUSIID" VARCHAR2(50 BYTE),
"SYSTEMID" VARCHAR2(3 BYTE),
"TYPE" VARCHAR2(2 BYTE),
"CHANNELID" VARCHAR2(10 BYTE),
"OPERATORS" VARCHAR2(10 BYTE),
"SUBSYSID" VARCHAR2(5 BYTE),
"SENDCOUNT" NUMBER(*,0),
"PROCNAME" VARCHAR2(30 BYTE),
"WRITETIME" DATE,
"DELAYEDTIME" DATE,
"SENDTIME" DATE,
"SUCCESSFLAG" VARCHAR2(8 BYTE),
"MSGID" VARCHAR2(30 BYTE),
"RECVTIME" DATE,
"REPORTSTAT" VARCHAR2(2 BYTE),
"REPORTINFO" VARCHAR2(200 BYTE),
"STEPNOW" VARCHAR2(1 BYTE),
"MONTHDAY" VARCHAR2(2 BYTE),
"OPTUSERNAME" VARCHAR2(20 BYTE),
"SHOWFLAG" VARCHAR2(10 BYTE),
"YWLX" VARCHAR2(30 BYTE)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ;
uj5u.com熱心網友回復:
需要你提供資料和關鍵的欄位,不用所有欄位都貼上來。比如a表中有怎樣的序號,對應什么樣的分組類別。
這個對應分組存在哪里,a表中,還是第三個表。
如果在A表中,直接參考即可。
如果在第三個表中,需要關聯查詢得到
uj5u.com熱心網友回復:
============我只想說我是想 上傳第三張表的 但是 論壇不讓連續回復四次
=====最多連續回復三次 很尷尬~ 最后一張表就放這里了。。
弄的有點亂 大神們隨性看~

=========== 中間表 busiid 和 ywlx 的對應關系表
--------------------------------------------------------
-- DDL for Table YWLX_MAP
--------------------------------------------------------
CREATE TABLE "ZFXX"."YWLX_MAP"
( "REQUEST_ID" VARCHAR2(30 BYTE),
"BUSIID" VARCHAR2(50 BYTE),
"YWLX" VARCHAR2(30 BYTE),
"YWMS" VARCHAR2(30 BYTE)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ;
REM INSERTING into ZFXX.YWLX_MAP
SET DEFINE OFF;
Insert into ZFXX.YWLX_MAP (REQUEST_ID,BUSIID,YWLX,YWMS) values ('1','D00001','0','小');
Insert into ZFXX.YWLX_MAP (REQUEST_ID,BUSIID,YWLX,YWMS) values ('2','D00002','2','中');
Insert into ZFXX.YWLX_MAP (REQUEST_ID,BUSIID,YWLX,YWMS) values ('3','D00003','1','大');
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/110515.html
標籤:開發
