ВУЗ:
Составители:
Рубрика:
36
G_h[yaZl_evgh_dexq_\h_keh\h WHENaZ^Z_l^hihegbl_evgh_eh]bq_
kdh_mkeh\b_km`Zxs__h[eZklv^_ckl\byljb]]_jZ
Ij_`^_q_fi_j_clbdijbf_jmihkljh_gbyljb]]_jZijb\_^_fg_dhlh
ju_ ^hihegbl_evgu_ k\_^_gby h[ h[jZ[hld_ bkdexqbl_evguo kblmZpbc \
Oracle.>ey ih^dexq_gby d f_oZgbafm h[jZ[hldbhrb[hdihevah\Zl_evkdbo
lhq_d \oh^Z ijbf_gy_lky ijhp_^mjZ RAISE_APPLICATION_ERROR. K __
ihfhsvxfh`ghh[jZ[hlZlv^h
1000
hij_^_ey_fuoihevah\Zl_e_fhrb[hdk
ghf_jZfb \ ^bZiZahg_ hl -20000 ^h -20999. <uah\ ijhp_^mju
RAISE_APPLICATION_ERROR ijb\h^bl d ]_g_jZpbb bkdexqbl_evghc kb
lmZpbb b aZ\_jr_gbx \uiheg_gby \ua\Z\r_c ijhp_^mjm ijh]jZffukjZ\
gbl_kjZkkfhlj_gguf\ur_hi_jZlhjhf PL/SQL RAISE).Ijbwlhf\kj_^m
\ua\Z\rmx ijh]jZffm \ha\jZsZ_lky ghf_j b l_dklh\h_ khh[s_gb_ h lbi_
hrb[db
JZkkfhljbf ijbf_j ljb]]_jZ dhlhjuc \uihegy_lky _keb agZq_gb_
\\h^bfh]h Zljb[mlZmdehgy_lky ih fh^mex hl kj_^g_]h agZq_gby ^ey l_
dms_]h khklhygby lZ[ebpu Imklv lZ[ebpZ
Tab1
knhjfbjh\ZgZ ij_^eh`_
gbyfb
CREATE TABLE LZb1 (Atl NUMBER);
INSERT INTO LZb1 VALUES (10 ) ;
INSERT INTO LZb1 VALUES (
30 )
;
INSERT INTO LZb1 VALUES ( 5 0) ;
Ijhlhdhe kha^Zgby ljb]]_jZ ij_^klZ\e_g gb`_. Ijb kjZ[Zlu\Zgbb
ljb]]_jZij_^mkfhlj_gZ]_g_jZpbyklZg^Zjlghch[jZ[hldbhrb[dbdhlhjhc
ijbk\Zb\Z_lkyghf_j -20002kkhhl\_lkl\mxsbf^bZ]ghklbjmxsbfkhh[s_
gb_f H[jZlbl_ \gbfZgb_ gZ ij_^hij_^_e_ggmx i_j_f_ggmx :new.Atl, kh
^_j`Zsmxih__kfukem\\h^bfh_agZq_gb_ Zljb[mlZ Atl.
IJBF?J 4.6.1.
SQL> CREATE OR REPLACE TRIGGER TRIG_TBI
2 BEFORE INSERT ON
LZ
b1
3
FOR EACH ROW
4 DECLARE
5 StatAvg NUMBER;
6 StatN NUMBER;
7
BEGIN
8 SELECT COUNT(Atl),SUM(At1) INTO StatN, StatAvg
9 FROM Tab1;
10 IF (ABS (StatAvg - StatN* (: new .Alt1)) > 30)
11 THEN RAISE_APPLICATION_ERROR (-20002, ' Kebrdhf [hevrh_
mdehg_gb_ ' );
12 END IF;
13 END;
14
/
Trigger created.
����������������������������� WHEN������������������������������ ������������������������������������������������� ������������������������������������������������������������������ ���� ��������������� ��������� ��� ���������� ��������������� ��������� � Oracle.� ���� ������������ �� ���������� ����������������� ����������������� ������ ������ ������������ ��������� RAISE_APPLICATION_ERROR.� �� ��� ��������������������������� 1000������������������������������������� ��������� �� ���������� �� -20000� �� -20999. ������ ��������� RAISE_APPLICATION_ERROR� ��������� �� ���������� ��������������� ��� ������� �� ����������� ����������� ���������� ���������� ���������� ������ ������������������������� ���������� PL/SQL RAISE).������������������� ���������� ����������� ������������� ������ �� ���������� ���������� �� ����� ������� ����������� ������� ���������� �������� ������������� ����� ��������� ���������� ��������� ����������� ��� ������� ��� ��������� ��������� ���� ��� ������� ���������� ��������� ������ ������� Tab1� ������������� ��������� ������ CREATE TABLE ��b1 (Atl NUMBER); INSERT INTO ��b1 VALUES (10 ) ; INSERT INTO ��b1 VALUES ( 30 ) ; INSERT INTO ��b1 VALUES ( 5 0) ; ��������� ��������� ��������� ������������ ����.� ���� ������������� ����������������������������������������������������������������������� ������������������� -20002������������������������������������������ ������ ��������� ��������� ��� ����������������� ����������� :new.Atl,� ��� ����������������������������������������� �������� Atl. ������ 4.6.1. SQL> CREATE OR REPLACE TRIGGER TRIG_TBI 2 BEFORE INSERT ON ��b1 3 FOR EACH ROW 4 DECLARE 5 StatAvg NUMBER; 6 StatN NUMBER; 7 BEGIN 8 SELECT COUNT(Atl),SUM(At1) INTO StatN, StatAvg 9 FROM Tab1; 10 IF (ABS (StatAvg - StatN* (: new .Alt1)) > 30) 11 THEN RAISE_APPLICATION_ERROR (-20002, ' ������� ������� ��������� ' ); 12 END IF; 13 END; 14 / Trigger created. 36
Страницы
- « первая
- ‹ предыдущая
- …
- 34
- 35
- 36
- 37
- 38
- …
- следующая ›
- последняя »