CREATE OR REPLACE TRIGGER S_U_AIS_ID_SEQ_TR
after update on AIS
for each row
declare
ais_chng_dsc_tx_v varchar2(4000);
aisu_cmnq_v cdb.ais_usage.cmnq_part_id%;
o_cmnq_v cdb.ais.cmnq_part_id%type;
cursor aisucmnqpartid_crsr is
select ais_usage.cmnq_part_id
FROM CDB.AIS_USAGE
where cdb.ais_usage.ais_usg_nm = 'CDT';
begin
open aisucmnqpartid_crsr;
fetch aisucmnqpartid_crsr into aisu_cmnq_v;
loop
o_cmnq_v := aisu_cmnq_v;
if aisu_cmnq_v = o_cmnq_v then
while aisu_cmnq_v = o_cmnq_v
loop
if updating ('CMNQ_PART_ID')
or updating ('AIS_NM')
or updating ('AIS_ACRYNM_TX')
or updating ('AIS_CT_CD')
or updating ('ORG_ID')
or updating ('AIS_EXT_DSC_TX')
or updating ('AIS_IOC_DT')
or updating ('AIS_FOC_DT')
or updating ('MSN_AR_TYP_CD')
or updating ('MSN_AR_TYP_TX')
or updating ('SCRTY_CLSFCTN_TX')
or updating ('AIS_DSD_ID')
or updating ('AIS_DSD_CD')
or updating ('FAR_NM')
or updating ('AIS_UPGRADE_RMK_TX')
or updating ('AIS_RCRD_CRTN_ZZ')
or updating ('AIS_RCD_ZZ')
or updating ('AIS_DSC_TX')
then
if nvl (:old.AIS_NM, 'null')!=nvl(:new.AIS_NM, 'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_NM, ';
end if;
if nvl (:old.AIS_ACRYNM_TX, 'null')!=nvl(:new.AIS_ACRYNM_TX, 'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_ACRYNM_TX, ';
end if;
if nvl (:old.AIS_CT_CD,'null')!=nvl(:new.AIS_CT_CD,'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_CT_CD, ';
end if;
if nvl(to_char(:old.ORG_ID),'null')!=nvl(to_char(:new.ORG_ID), 'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'ORG_ID, ';
end if;
if nvl (:old.AIS_EXT_DSC_TX,'null')!=nvl(:new.AIS_EXT_DSC_TX,'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_EXT_DSC_TX, ';
end if;
if nvl (to_char(:old.AIS_IOC_DT,'MM/DD/YYYY'),'null')!=nvl(to_char(:new.AIS_IOC_DT,'MM/DD/YYYY'),'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_IOC_DT, ';
end if;
if nvl (to_char(:old.AIS_FOC_DT,'MM/DD/YYYY'),'null')!=nvl(to_char(:new.AIS_FOC_DT,'MM/DD/YYYY'),'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_FOC_DT, ';
end if;
if nvl (:old.MSN_AR_TYP_CD,'null')!=nvl(:new.MSN_AR_TYP_CD,'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'MSN_AR_TYP_CD, ';
end if;
if nvl (:old.MSN_AR_TYP_TX,'null')!=nvl(:new.MSN_AR_TYP_TX,'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'MSN_AR_TYP_TX, ';
end if;
if nvl (:old.SCRTY_CLSFCTN_TX,'null')!=nvl(:new.SCRTY_CLSFCTN_TX,'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'SCRTY_CLSFCTN_TX, ';
end if;
if nvl (:old.AIS_DSD_ID,'null')!=nvl(:new.AIS_DSD_ID,'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_DSD_ID, ';
end if;
if nvl (:old.AIS_DSD_CD,'null')!=nvl(:new.AIS_DSD_CD,'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_DSD_CD, ';
end if;
if nvl (:old.FAR_NM,'null')!=nvl(:new.FAR_NM,'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'FAR_NM, ';
end if;
if nvl (:old.AIS_UPGRADE_RMK_TX,'null')!=nvl(:new.AIS_UPGRADE_RMK_TX,'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_UPGRADE_RMK_TX, ';
end if;
if nvl (to_char(:old.AIS_RCRD_CRTN_ZZ,'MM/DD/YYYY'),'null')!=nvl(to_char(:new.AIS_RCRD_CRTN_ZZ,'MM/DD/YYYY'),'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_RCRD_CRTN_ZZ, ';
end if;
if nvl (to_char(:old.AIS_RCD_ZZ,'MM/DD/YYYY'),'null')!=nvl (to_char(:new.AIS_RCD_ZZ,'MM/DD/YYYY'),'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_RCD_ZZ, ';
end if;
if nvl (:old.AIS_DSC_TX,'null')!=nvl(:new.AIS_DSC_TX,'null') then
ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_DSC_TX, ';
end if;
insert into s_ais
(S_AIS_ID,
CMNQ_PART_ID,
AIS_NM,
AIS_ACRYNM_TX,
AIS_CT_CD,
ORG_ID,
AIS_EXT_DSC_TX,
AIS_IOC_DT,
AIS_FOC_DT,
MSN_AR_TYP_CD,
MSN_AR_TYP_TX,
SCRTY_CLSFCTN_TX,
AIS_DSD_ID,
AIS_DSD_CD,
FAR_NM,
AIS_UPGRADE_RMK_TX,
AIS_RCRD_CRTN_ZZ,
AIS_RCD_ZZ,
AIS_DSC_TX,
AMCAT_ID,
AMCAT_PRIM_TYP,
ais_chng_cd,
ais_mod_c_dt,
ais_d_src,
ais_chng_dsc_tx,
ais_cnfrm_rcpt_flg)
values
(S_AIS_ID_SEQ.NEXTVAL,
:old.cmnq_part_id,
:new.AIS_NM,
:new.AIS_ACRYNM_TX,
:new.AIS_CT_CD,
:new.ORG_ID,
:new.AIS_EXT_DSC_TX,
:new.AIS_IOC_DT,
:new.AIS_FOC_DT,
:new.MSN_AR_TYP_CD,
:new.MSN_AR_TYP_TX,
:new.SCRTY_CLSFCTN_TX,
:new.AIS_DSD_ID,
:new.AIS_DSD_CD,
:new.FAR_NM,
:new.AIS_UPGRADE_RMK_TX,
:new.AIS_RCRD_CRTN_ZZ,
:new.AIS_RCD_ZZ,
:new.AIS_DSC_TX,
:new.AMCAT_ID,
:new.AMCAT_PRIM_TYP,
'U',
sysdate,
'CDT',
substr(ais_chng_dsc_tx_v,1,499),
'N');
end if;
fetch aisucmnqpartid_crsr into aisu_cmnq_v;
Exit when aisucmnqpartid_crsr%notfound;
end loop;
end if;
end loop;
close aisucmnqpartid_crsr;
END;
/
1 CREATE OR REPLACE TRIGGER S_U_AIS_ID_SEQ_TR
2 after update on AIS
3 for each row
4 declare
5 ais_chng_dsc_tx_v varchar2(4000);
6 aisu_cmnq_v cdb.ais_usage.cmnq_part_id%type;
7 o_cmnq_v cdb.ais.cmnq_part_id%type;
8 cursor aisucmnqpartid_crsr is
9 select ais_usage.cmnq_part_id
10 FROM CDB.AIS_USAGE
11 where cdb.ais_usage.ais_usg_nm = 'CDT';
12 begin
13 open aisucmnqpartid_crsr;
14 fetch aisucmnqpartid_crsr into aisu_cmnq_v;
15 loop
16 o_cmnq_v := aisu_cmnq_v;
17 if aisu_cmnq_v = o_cmnq_v then
18 while aisu_cmnq_v = o_cmnq_v
19 loop
20 if updating ('CMNQ_PART_ID')
21 or updating ('AIS_NM')
22 or updating ('AIS_ACRYNM_TX')
23 or updating ('AIS_CT_CD')
24 or updating ('ORG_ID')
25 or updating ('AIS_EXT_DSC_TX')
26 or updating ('AIS_IOC_DT')
27 or updating ('AIS_FOC_DT')
28 or updating ('MSN_AR_TYP_CD')
29 or updating ('MSN_AR_TYP_TX')
30 or updating ('SCRTY_CLSFCTN_TX')
31 or updating ('AIS_DSD_ID')
32 or updating ('AIS_DSD_CD')
33 or updating ('FAR_NM')
34 or updating ('AIS_UPGRADE_RMK_TX')
35 or updating ('AIS_RCRD_CRTN_ZZ')
36 or updating ('AIS_RCD_ZZ')
37 or updating ('AIS_DSC_TX')
38 then
39 if nvl (:old.AIS_NM, 'null')!=nvl(:new.AIS_NM, 'null') then
40 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_NM, ';
41 end if;
42 if nvl (:old.AIS_ACRYNM_TX, 'null')!=nvl(:new.AIS_ACRYNM_TX, 'null') then
43 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_ACRYNM_TX, ';
44 end if;
45 if nvl (:old.AIS_CT_CD,'null')!=nvl(:new.AIS_CT_CD,'null') then
46 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_CT_CD, ';
47 end if;
48 if nvl(to_char(:old.ORG_ID),'null')!=nvl(to_char(:new.ORG_ID), 'null') then
49 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'ORG_ID, ';
50 end if;
51 if nvl (:old.AIS_EXT_DSC_TX,'null')!=nvl(:new.AIS_EXT_DSC_TX,'null') then
52 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_EXT_DSC_TX, ';
53 end if;
54 if nvl (to_char(:old.AIS_IOC_DT,'MM/DD/YYYY'),'null')!=nvl(to_char(:new.AIS_IOC_DT,'MM/DD/YYY
55 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_IOC_DT, ';
56 end if;
57 if nvl (to_char(:old.AIS_FOC_DT,'MM/DD/YYYY'),'null')!=nvl(to_char(:new.AIS_FOC_DT,'MM/DD/YYY
58 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_FOC_DT, ';
59 end if;
60 if nvl (:old.MSN_AR_TYP_CD,'null')!=nvl(:new.MSN_AR_TYP_CD,'null') then
61 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'MSN_AR_TYP_CD, ';
62 end if;
63 if nvl (:old.MSN_AR_TYP_TX,'null')!=nvl(:new.MSN_AR_TYP_TX,'null') then
64 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'MSN_AR_TYP_TX, ';
65 end if;
66 if nvl (:old.SCRTY_CLSFCTN_TX,'null')!=nvl(:new.SCRTY_CLSFCTN_TX,'null') then
67 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'SCRTY_CLSFCTN_TX, ';
68 end if;
69 if nvl (:old.AIS_DSD_ID,'null')!=nvl(:new.AIS_DSD_ID,'null') then
70 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_DSD_ID, ';
71 end if;
72 if nvl (:old.AIS_DSD_CD,'null')!=nvl(:new.AIS_DSD_CD,'null') then
73 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_DSD_CD, ';
74 end if;
75 if nvl (:old.FAR_NM,'null')!=nvl(:new.FAR_NM,'null') then
76 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'FAR_NM, ';
77 end if;
78 if nvl (:old.AIS_UPGRADE_RMK_TX,'null')!=nvl(:new.AIS_UPGRADE_RMK_TX,'null') then
79 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_UPGRADE_RMK_TX, ';
80 end if;
81 if nvl (to_char(:old.AIS_RCRD_CRTN_ZZ,'MM/DD/YYYY'),'null')!=nvl(to_char(:new.AIS_RCRD_CRTN_Z
82 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_RCRD_CRTN_ZZ, ';
83 end if;
84 if nvl (to_char(:old.AIS_RCD_ZZ,'MM/DD/YYYY'),'null')!=nvl (to_char(:new.AIS_RCD_ZZ,'MM/DD/YY
85 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_RCD_ZZ, ';
86 end if;
87 if nvl (:old.AIS_DSC_TX,'null')!=nvl(:new.AIS_DSC_TX,'null') then
88 ais_chng_dsc_tx_v := ais_chng_dsc_tx_v || 'AIS_DSC_TX, ';
89 end if;
90 insert into s_ais
91 (S_AIS_ID,
92 CMNQ_PART_ID,
93 AIS_NM,
94 AIS_ACRYNM_TX,
95 AIS_CT_CD,
96 ORG_ID,
97 AIS_EXT_DSC_TX,
98 AIS_IOC_DT,
99 AIS_FOC_DT,
100 MSN_AR_TYP_CD,
101 MSN_AR_TYP_TX,
102 SCRTY_CLSFCTN_TX,
103 AIS_DSD_ID,
104 AIS_DSD_CD,
105 FAR_NM,
106 AIS_UPGRADE_RMK_TX,
107 AIS_RCRD_CRTN_ZZ,
108 AIS_RCD_ZZ,
109 AIS_DSC_TX,
110 AMCAT_ID,
111 AMCAT_PRIM_TYP,
112 ais_chng_cd,
113 ais_mod_c_dt,
114 ais_d_src,
115 ais_chng_dsc_tx,
116 ais_cnfrm_rcpt_flg)
117 values
118 (S_AIS_ID_SEQ.NEXTVAL,
119 :old.cmnq_part_id,
120 :new.AIS_NM,
121 :new.AIS_ACRYNM_TX,
122 :new.AIS_CT_CD,
123 :new.ORG_ID,
124 :new.AIS_EXT_DSC_TX,
125 :new.AIS_IOC_DT,
126 :new.AIS_FOC_DT,
127 :new.MSN_AR_TYP_CD,
128 :new.MSN_AR_TYP_TX,
129 :new.SCRTY_CLSFCTN_TX,
130 :new.AIS_DSD_ID,
131 :new.AIS_DSD_CD,
132 :new.FAR_NM,
133 :new.AIS_UPGRADE_RMK_TX,
134 :new.AIS_RCRD_CRTN_ZZ,
135 :new.AIS_RCD_ZZ,
136 :new.AIS_DSC_TX,
137 :new.AMCAT_ID,
138 :new.AMCAT_PRIM_TYP,
139 'U',
140 sysdate,
141 'CDT',
142 substr(ais_chng_dsc_tx_v,1,499),
143 'N');
144 end if;
145 fetch aisucmnqpartid_crsr into aisu_cmnq_v;
146 Exit when aisucmnqpartid_crsr%notfound;
147 end loop;
148 end if;
149 end loop;
150 close aisucmnqpartid_crsr;
151* END;
SQL> /
Trigger created.
SQL> ed
Wrote file afiedt.buf
1 UPDATE CDB.AIS SET CDB.AIS.AIS_NM = 'test trigger update'
2* WHERE CDB.AIS.CMNQ_PART_ID=999999997
SQL> /
UPDATE CDB.AIS SET CDB.AIS.AIS_NM = 'test trigger update'
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "CDB.S_U_AIS_ID_SEQ_TR", line 37
ORA-04088: error during execution of trigger 'CDB.S_U_AIS_ID_SEQ_TR'
SQL>
ais_chng_dsc_tx_v varchar2(4000);
And in the insert statement change ais_chng_dsc_tx_v to substr(ais_chng_dsc_tx_v,1