Распределенные базы данных на примере Oracle. Астахова И.Ф. - 37 стр.

UptoLike

Составители: 

37
JZ[hlm f_oZgbafZ ljb]]_jZ ijhbeexkljbjm_f gZ ijbf_j_ Ijb \\h^_
agZq_gby^hklZlhqgh[ebadh]hdkj_^g_fm\^ZgghfkemqZ_ 40),ljb]]_jg_
aZimkdZ_lkybgbq_]hg_ijhbkoh^blIjb\\h^_agZq_gbyZljb[mlZjZ\gh
]h 90,khhl\_lkl\mxsZyklZlbklbdZmdZau\Z_lgZ[hevrh_mdehg_gb_ijhbk-
oh^bl kjZ[Zlu\Zgb_ ljb]]_jZ b gh\Zy kljhdZ g_ \dexqZ_lky Hi_jZpby \u
[hjdbih^l\_j`^Z_lh`b^Z_fh_baf _g_gb_\lZ[ebp_
SQL> insert into tab1 values (40);
I row created.
SQL> insert into tab1 values (90);
insert into tab1 values (90)
ERROR at line 1:
ORA-20002:Kebrdhf[hevrh_mdehg_gb_
ORA-06512: at "SYSTEM. TRIG_TBI", line 9
ORA-04088: error during execution
of
trigger 'SYSTEM .TRIG_TBI'
SQL> select * from tab1;
Ke_^mxsbc ijbf_j beexkljbjm_l \hafh`ghklv h[jZ[hldb bkdexqb
l_evghc kblmZpbb kj_^kl\Zfb ihevah\Zl_evkdhc ijh]jZffu <^Zgghf kem
qZ_kha^Z_lkyljb]]_jdhlhjucijb ij_\ur_gbbaZ^Zggh]hihjh]Zmdehg_
gby\\h^bfh]hagZq_gbyZljb[mlZ\u\h^bl^bZ]ghklbq_kdh_khh[s_gb_Ijb
wlhf^Zggu_\lZ[ebpm\\h^ylky
IJBF?J
SQL> CREATE OR REPLACE TRIGGER TRIG_TB2
2 BEFORE INSERT ON LZb1
3 FOR EACH ROW
4 DECLARE
5 StatAvg NUMBER;
6 StatN NUMBER;
7 Special_case EXCEPTION; --Ihevah\Zl_evkdZybkdexqbl_evgZykb
lmZpby
8 BEGIN
9 SELECT COUNT(Atl),SUM(AtI) INTO StatN, StatAvg
10 FROM Tab1;
11 IF (ABS (StatAvg - StatN* (: new. Atl)) > 30)
12 THEN RAISE Special_case;
13 END IF;
14 EXCEPTION
15 WHEN Special_case THEN
16 DBMS_OUTPUT
.
PUT_LINE ( 'Kebrdhf[hevrh_mdehg_gb_ ');
17 WHEN OTHERS THEN
18 DBMS_OUTPUT. PUT_LINE ( ' He^bZ]ghklbjh\ZggZyhrb[dZljb]]_jZ '
) ;
      ������� ���������� ��������� ���������������� ��� ��������� ���� ������
��������������������������������������������������������� 40),������������
��������������������������������������������������������������������������
�� 90,�����������������������������������������������������������������-
������ ������������� ���������� �� ������ ������� ��� ������������ ��������� ���
�������������������������������������������������

SQL> insert into tab1 values (40);

I row created.
SQL> insert into tab1 values (90);
insert into tab1 values (90)
ERROR at line 1:
ORA-20002:��������������������������
ORA-06512: at "SYSTEM. TRIG_TBI", line 9
ORA-04088: error during execution of trigger 'SYSTEM .TRIG_TBI'
SQL> select * from tab1;
      ���������� ������� ������������� ������������ ���������� ��������
�������� ��������� ����������� ����������������� ����������� �� ������� ����
�����������������������������������������������������������������������
������������������������������������������������������������������������
�������������������������������
�������������
SQL> CREATE OR REPLACE TRIGGER TRIG_TB2
   2 BEFORE INSERT ON ��b1
   3 FOR EACH ROW
   4 DECLARE
   5 StatAvg NUMBER;
   6 StatN NUMBER;
  7 Special_case EXCEPTION; --������������������������������������
�������
  8 BEGIN
  9 SELECT COUNT(Atl),SUM(AtI) INTO StatN, StatAvg
 10 FROM Tab1;
 11 IF (ABS (StatAvg - StatN* (: new. Atl)) > 30)
 12 THEN RAISE Special_case;
 13 END IF;
 14 EXCEPTION
 15 WHEN Special_case THEN
 16 DBMS_OUTPUT. PUT_LINE ( '�������������������������� ');
 17 WHEN OTHERS THEN
 18 DBMS_OUTPUT. PUT_LINE ( ' He���������������������������������� '
);


                                                                             37