ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Oracle Database Change Notification
ΠΠ»ΠΈΠ΅Π½Ρ — ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ (ΠΎΠ±ΡΡΠ½ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΠΏΡΡΠΌΡΡ ΡΠ²ΡΠ·Π΅ΠΉ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ (ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ), Π±ΡΡΡ Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ (ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ) ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ). ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Oracle Database Change Notification (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Oracle Database Change Notification
ΠΡΠ΅ ΡΠ°ΡΠ΅ Π² Π½Π°ΡΠ΅ΠΉ ΠΆΠΈΠ·Π½ΠΈ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ. ΠΠ° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠΉ Π΄Π»Ρ ΡΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ (Π‘Π£ΠΠ). ΠΠΎ ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π·Π°ΡΡΠ°ΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ Π·Π°ΡΡΠ°Ρ ΠΏΠΎΠ΄Π²ΠΈΠ³Π»Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΡΡΠΏΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Database Change Notification
Π¦Π΅Π»ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Database Change Notification ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Oracle, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ Π² Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ .
Π Π·Π°Π΄Π°ΡΠΈ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π²Ρ ΠΎΠ΄ΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΎΠΌ Oracle Database Enterprise Edition 11g ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Oracle ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Change Notification. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΌΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΈΠ·ΡΡΠ°Π΅ΠΌΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π° ΡΠ°ΠΊ ΠΆΠ΅ Π²ΡΡΠ²Π»Π΅Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠ°Π±ΠΎΡΡ:
Β· ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ Π½Π°ΡΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΠΌΡ, ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ, ΡΠ΅Π»Ρ, Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ Π·Π½Π°ΡΠΈΠΌΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ.
Β· ΠΠ»Π°Π²Π° ΠΏΠ΅ΡΠ²Π°Ρ — Π·Π΄Π΅ΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΎΠ±ΡΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΊΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΎΠ±Π»Π°ΡΡΠΈ Π‘Π£ΠΠ, ΡΠΏΠΎΡΠΎΠ±Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
Β· ΠΠ»Π°Π²Π° Π²ΡΠΎΡΠ°Ρ — ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Oracle Database ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Oracle. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈΠ·ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ Oracle Database Enterprise Edition — Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
Β· Π’ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π° — Π² Π½Π΅ΠΉ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ, ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Database Change Notification/
Β· ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ — ΠΏΠΎΠ΄Π²ΠΎΠ΄ΡΡΡΡ ΠΈΡΠΎΠ³ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ ΠΏΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠ΅ΠΌΠ΅.
1. Π‘Π£ΠΠ: ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅?
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ (Π‘Π£ΠΠ) — ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΈ Π»ΠΈΠ½Π³Π²ΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±Π°Π· Π΄Π°Π½Π½ΡΡ .
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π‘Π£ΠΠ:
Β· ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π΅Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
Β· ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ (Π²ΡΠ±ΠΎΡΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ , Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π²Π²ΠΎΠ΄Π° / Π²ΡΠ²ΠΎΠ΄Π°, Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ).
Β· ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ .
Β· ΠΠ°ΡΠΈΡΠ° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
Β· ΠΠ°ΡΠΈΡΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ.
Β· Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
Β· Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
Β· Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ ΡΡΠ΅Π΄Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ.
Β· ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»Π°.
ΠΠ±ΡΡΠ½ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π‘Π£ΠΠ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ:
Β· ΡΠ΄ΡΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΠΌΠΈ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΆΡΡΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ,
Β· ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΡΠ·ΡΠΊΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΌΠ°ΡΠΈΠ½Π½ΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°,
Β· ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ Π‘Π£ΠΠ
Β· Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ), ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΡΠ΄ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Ρ ΡΠ°Π½ΠΈΠΌΠ°Ρ Π² ΠΠ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ Π»ΠΈΠ±ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°ΠΌ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π² Π‘Π£ΠΠ, Π° Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π² Π‘Π£ΠΠ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ORACLE ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠΎ PLSQL ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° — ΡΠΈΠΏ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
Π€ΡΠ½ΠΊΡΠΈΡ — ΡΡΠΎ ΡΠΈΠΏ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΠ»Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Trigger — ΡΡΠΎ Ρ ΡΠ°Π½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ, Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΡΠΎΠ»Π±ΡΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π’ΡΠΈΠ³Π³Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ. Π’ΡΠΈΠ³Π³Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ ΡΠ²ΡΠ·Π°Π½. ΠΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠΌ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²ΡΠ·Π²Π°Π²ΡΠ΅Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΠ°. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΎΡΠΊΠ°Ρ ΡΡΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
ΠΠ°Π½Π½ΡΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ ΡΡΠ°Π·Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, ΠΎΠ½ΠΈ ΠΊΠ΅ΡΠΈΡΡΡΡΡΡ, Π΄Π»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π·Π°ΡΡΠ°Ρ Π½Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΠ. ΠΠΎ ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ORACLE ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Change Notification.
2. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Change Notification
ORACLE — Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΠΈΡΡΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ (Π‘Π£ΠΠ). Π‘Π΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ORACLE ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎ ΡΠΈΡΠΎΠΊΠΎΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² ΠΌΠΈΡΠ΅ ΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π² Π ΠΎΡΡΠΈΠΈ.
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ ORACLE ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π² 1977 Π³ΠΎΠ΄Ρ, ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π² Π½Π΅ΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ 115 ΡΡΡ. ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ. ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΠΈΠ΄Π΅ΡΠΎΠ² Π² ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ Π‘Π£ΠΠ. ΠΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΡΠ΅Π½ΠΊΠ°ΠΌ, Π΅Ρ Π΄ΠΎΠ»Ρ Π½Π° ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΠΎΠΌ ΡΡΠ½ΠΊΠ΅ Π‘Π£ΠΠ Π² 2010 Π³ΠΎΠ΄Ρ ΠΏΡΠ΅Π²ΡΡΠΈΠ»Π° 45%. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ ORACLE Database Ρ ΠΎΡΠΎΡΠΎ Π·Π°ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ.
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ORACLE ΡΠ²Π»ΡΠ΅ΡΡΡ ORACLE Database. ΠΠΏΠ΅ΡΠ²ΡΠ΅ Π²ΠΏΡΡΠ΅Π½Π½Π°Ρ Π½Π° ΡΡΠ½ΠΎΠΊ Π² 1979 Π³ΠΎΠ΄Ρ, ΠΎΠ½Π° Π±ΡΡΡΡΠΎ Π·Π°ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»Π° ΡΠ΅Π±Ρ. ΠΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ»ΡΡΡΠ°ΡΡΡ, ORACLE Database ΠΎΠ±Π·Π°Π²Π΅Π»Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ, ΠΏΡΠΈΡΡΡΠΈΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Real Application Cluster, ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ°ΡΡΡ Π² 9-ΠΉ Π²Π΅ΡΡΠΈΠΈ Π‘Π£ΠΠ Oracle, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ Π‘Π£ΠΠ Π² ΠΎΠ΄Π½Ρ <οΏ½Π±ΠΎΠ»ΡΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ >. ΠΠ»ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Real Application Testing ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ Π·Π°ΡΡΠ°ΡΡ Π½Π° ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½ΠΎΠ²ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π°, Π²Π½ΠΎΡΠΈΠΌΡΠ΅ Π² Π‘Π£ΠΠ ΠΎΡ ORACLE Π»ΠΈΡΡ Π΄Π΅Π»Π°ΡΡ Π΅Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΡΡΡΠ΅, ΠΈ Π²ΡΠ΄Π΅Π»ΡΡΡ Π½Π° ΡΠΎΠ½Π΅ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ. ΠΡΠΎΠΉ ΠΆΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΡΠ°Π»Π° ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Change Notification.
ΠΠΏΠ΅ΡΠ²ΡΠ΅ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠ°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ORACLE ΡΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² 10 Π²Π΅ΡΡΠΈΠΈ ORACLE Database. ΠΡΠ½ΠΎΠ²Π½ΡΠΌ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ:
Β· DML (insert/update/delete)
Β· DDL (alter table add)
Β· Π‘ΡΠ°ΡΡ / ΠΡΡΠ°Π½ΠΎΠ² (startup /shutdown)
Β· ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ ΠΠ°ΡΠΈΠ½Π°Ρ Ρ 11g Π²Π΅ΡΡΠΈΠΈ, ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½Π° ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π²ΡΠ±ΠΎΡΠΊΠΈ (select), Π° Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½Π° Π·Π°Π²ΠΈΡΠΈΡ. ΠΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ select Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
Β· ΠΠ΅Π»ΡΠ·Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ
Β· ΠΠ΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Β· ΠΠΎΠ»Ρ ΡΠΎΠ»ΡΠΊΠΎ NUMBER ΠΈ VARCHAR2
ΠΠ»Ρ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠΌΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Change Notification ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΈ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΡ SYS. CHNF$_DESC ΠΈ SYS. CHNF$_REG_INFO, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° USER_CHANGE_NOTIFICATION_REGS. Π‘ΡΡΡΠΊΡΡΡΠ° SYS. CHNF$_DESC ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ»Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ Π² ΠΠ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ
Β· ΠΠΌΡ ΠΈ ΡΡ Π΅ΠΌΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½
Β· Π’ΠΈΠΏ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎ Π΄Π°Π½Π½ΡΠ΅
o INSERT
o UPDATE
o DELETE
o ALTER TABLE
o DROP TABLE
Β· ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ STARTUP ΠΈ SHUTDOWN.
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΡΠ΅Π±ΡΡΡ DML ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΡΠΈ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΠΈ Π·Π° ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠ°Π½ΡΡ: ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π΅ ΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΠ΅, Π° ROWID ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ ΡΡΡΠΎΠΊ, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ DML-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
ΠΡΠΎΠΌΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΠ΅, Change Notification ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊΠ°ΠΊ:
β’ ΠΠ°ΠΏΡΠΎΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌ (views)
β’ Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (join)
β’ ΠΠ°ΠΏΡΠΎΡΡ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ
β’ REF Cursors
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Change Notification ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ, ΡΠΎ Π΅ΡΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ (Π ΠΈΡ. 1), ΡΡΠΎ Π² ΡΠ΅ΠΎΡΠΈΠΈ ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
Π ΠΈΡ. 1
ΠΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°Π±Π»ΠΈΡΡ VAL_TEST:
1. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡΡΠΈΡΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΡ VAL_TEST. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΡ VAL_TEST, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ PLSQL ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Change Notification. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΡ PLSQL ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ, ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ Π΅Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°.
2. ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ Π΄Π°Π½Π½ΡΡ .
3. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ DML ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΈ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΡΡΠΎΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ VAL_TEST Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ°Π½Π½ΡΠ΅ Π΄Π»Ρ VAL_TEST ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°Π½Π΅Π΅, ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΡΠ°ΡΠ΅Π»ΠΈ.
4. Oracle Database Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
5. Π€ΠΎΠ½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ JOBQ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅Ρ ΠΎ Π½ΠΎΠ²ΠΎΠΌ Change Notification ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ.
6. ΠΡΠΎΡΠ΅ΡΡ JOBQ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π·Π°Π΄Π°Π½Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ JOBQ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ PLSQL ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ PLSQL ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ.
7. ΠΠ½ΡΡΡΠΈ PLSQL ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π΄Π»Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ (ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ**) ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π² Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎ ROWID ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² VAL_TEST.
8. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ΅Π΄Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
9. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΊΡΡ Π½ΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
Π‘Π»ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΡ CHANGE NOTIFICATION — ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ° SYS. CHNF$_DESC ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ:
Β· REGISTRATION_ID — Π½ΠΎΠΌΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ
Β· TRANSACTION_ID — Π½ΠΎΠΌΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° ΠΎΠ±ΡΠ΅ΠΊΡ
Β· DBNAME — Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Β· EVENT_TYPE — ΡΠΈΠΏ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
Β· NUMTABLES — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π±Π»ΠΈΡ, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΡ
Β· TABLE_DESC_ARRAY — ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°Π±Π»ΠΈΡΠ°Ρ , Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
o OPFLAGS — ΡΠΈΠΏ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ
o TABLE_NAME — Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ
o NUMROWS — Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅
o ROW_DESC_ARRAY — ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡΠ΅ΠΌ ΡΡΡΠΎΠΊΡ ΠΈ ROWID ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
Π’ΡΠ΅Ρ ΡΡΠΎΠ²Π½Π΅Π²Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° — Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ°, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡΠ°Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π² Π½ΡΠΌ ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ: ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ «ΡΠΎΠ½ΠΊΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ» ΠΈΠ»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΌ), ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Β· ΠΠ»ΠΈΠ΅Π½Ρ — ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ (ΠΎΠ±ΡΡΠ½ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΠΏΡΡΠΌΡΡ ΡΠ²ΡΠ·Π΅ΠΉ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ (ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ), Π±ΡΡΡ Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ (ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ) ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ). ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ½Π΅ΡΠ΅Π½Π° ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ½ΠΎΡΠΈΡΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ°: ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π° Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΡ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΡ, Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°, Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ°, ΠΏΠΎΠ΄ΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ) Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΌΠΈ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π».
Β· Π‘Π΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° Π²ΡΠΎΡΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. ΠΠ° Π²ΡΠΎΡΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Π° Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ. ΠΠ½Π΅ Π΅Π³ΠΎ ΠΎΡΡΠ°ΡΡΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ, ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ (ΡΠΌ. Π²ΡΡΠ΅), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠ΅ΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΡ.
Β· Π‘Π΅ΡΠ²Π΅Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈ Π²ΡΠ½ΠΎΡΠΈΡΡΡ Π½Π° ΡΡΠ΅ΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½Π°Ρ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π‘Π£ΠΠ. ΠΡΠ»ΠΈ ΡΡΠ΅ΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ, ΡΡΠΈΠ³Π³Π΅ΡΠ°ΠΌΠΈ ΠΈ ΡΡ Π΅ΠΌΠΎΠΉ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΡΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΡΡΠΎΠΈΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Ρ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
3. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Database Change Notification
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΠΌΠΈ Π±ΡΠ»Π° ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π·Π°Π΄Π°ΡΠ° ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Change Notification. ΠΠ°Π½Π½ΠΎΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π»ΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΏΡΡΠ΅ΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ VAL_TEST ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ MEASUREMENTS1. ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ VAL_TEST Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠΈΠ³Π³Π΅Ρ, Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ Π²ΡΠ΅ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΡ MEASUREMENTS.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΠΏΠΈΡΠ΅ΠΌ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ Π½Π° Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ΅ ΠΈΠ·ΡΡΠ°Π΅ΠΌΠ°Ρ Π½Π°ΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΡ VAL_TEST. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: ΠΌΡ Π²Π½ΠΎΡΠΈΠΌ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΡ VAL_TEST, Π·Π°ΡΠ΅ΠΌ ΡΠΈΠΊΡΠΈΡΡΠ΅ΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π΄ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ , ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° SYS. CHNF$_DESC, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, Π΄Π°Π»Π΅Π΅ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π½Π° Π²Ρ ΠΎΠ΄ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ.
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΡΠ΅Π³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ, Π·Π° ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈΡΡ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΡ. ΠΡΠ΅ ΡΡΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, Π² SQL-Π±Π»ΠΎΠΊΠ΅, ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΡΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ.
Π Ρ ΠΎΠ΄Π΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π²ΡΡΠ²ΠΈΠ»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΡΡΡΡ ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ»Π° Π½Π΅ΠΏΠΎΠ½ΡΡΠ½Π°. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π² ΡΠΈΠΊΠ»Π΅ Π²ΡΡΠ°Π²ΠΈΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π³Π΅Π½Π΅ΡΠΈΡΡΡ ΠΊΠ»ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡ VAL_TEST, ΡΠΎ ΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ° Π² ΡΠ°Π±Π»ΠΈΡΠ΅ MEASUREMENTS1 ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π²Π½Ρ Π½ΠΎΠΌΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π½Π΅ΡΠ΅Π½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ VAL_TEST (ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π ΠΈΡ. 1). Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π° ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ, Π° Π²Π½ΠΎΡΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, ΠΎΠ½ΠΈ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠΈΠΊΡΠΈΡΡΡΡΡΡ, ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ Π²Π½ΠΎΡΡΡΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ.
ΠΠ°Π»Π΅Π΅, Π² Ρ ΠΎΠ΄Π΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΡΠ²ΠΈΠ»Π°ΡΡ ΠΏΡΠΈΡΠΈΠ½Π° ΡΡΠΈΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ. ΠΡΠΈΠ²Π΅Π΄Ρ ΡΡ Π΅ΠΌΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΡΡΠΈΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅:
1. ΠΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅, Π° ΡΠ°ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π·Π°Π½ΠΎΡΡΡΡΡ Π² cash-ΠΏΠ°ΠΌΡΡΡ
2. ΠΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ.
3. ΠΠ°Π»Π΅Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
4. ΠΡΠΎΡΠ΅Π΄ΡΡΠ°-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
5. ΠΠ°Π½Π½ΡΠ΅ ΠΈΠ· cash-ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡΡΡ Π² ΠΠ.
ΠΡΠ° ΡΡ Π΅ΠΌΠ° ΠΎΡΡΠ°ΠΆΠ΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π΄Π°Π»Π΅Π΅.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° CHANGE NOTIFICATION.
Π‘ΠΎΠ·Π΄Π°ΡΡ Change Notification ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΌΠΎΠ΅ΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π΄Π°Π½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π½ΠΎΡΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ ΠΈ Π΄Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ VAL_TEST Π² ΡΠ°Π±Π»ΠΈΡΡ MEASUREMENTS1. ΠΡΠΈΠ²Π΅Π΄Ρ ΠΊΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ:
CREATE OR REPLACE PROCEDURE Notification_procedure (ntfnds IN SYS. CHNF$_DESC) IS
regid NUMBER;
event_type NUMBER;
numtables NUMBER;
operation_type NUMBER;
val_ID number;
BEGIN
regid:= ntfnds. registration_id;
numtables:= ntfnds. numtables;
event_type:= ntfnds. event_type;
IF (event_type = DBMS_CHANGE_NOTIFICATION.EVENT_OBJCHANGE) THEN
operation_type:= ntfnds. table_desc_array (1). Opflags;
if (operation_type = DBMS_CHANGE_NOTIFICATION.INSERTOP) then
select nvl (MAX (m.id_ms), 0) + 1 INTO val_ID from measurements1 m;
insert into Measurements1
(ID_MS, DATE_RC)
values
(val_id, SYSTIMESTAMP);
commit;
end if;
END IF;
END;
ΠΠΎΡΡΠ½Ρ ΠΊΠΎΠ΄ ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ: ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ VAL_TEST, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅, ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, ΡΠΎ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ event_type ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΊΠΎΠ΄ ΡΠ°Π²Π½ΡΠ΅ΡΡΡ 6 (ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ Π²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ). ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠΈΠΏ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΠ²ΡΠ΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠΎΠ»Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ntfnds. table_desc_array (1). Opflags. ΠΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ INSERT, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π»ΠΎΠ³ΠΈΠΊΡ. ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π½Π° Π²Ρ ΠΎΠ΄ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ntfnds ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈ Π² Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ .
ΠΠ°Π»Π΅Π΅ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΠΌ, ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈΡΡ Π·Π° ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ VAL_TEST:
DECLARE
regds sys. chnf$_reg_info;
regid number;
v_xId number;
qosflags number;
begin
qosflags:= DBMS_CHANGE_NOTIFICATION.QOS_RELIABLE +
DBMS_CHANGE_NOTIFICATION.QOS_ROWIDS;
REGDS:= SYS. CHNF$_REG_INFO (`Notification_procedure', qosflags, 0,0,0);
regid:= DBMS_CHANGE_NOTIFICATION.NEW_REG_START (REGDS);
select id_ms into v_xID from VAL_TEST where rownum=1;
DBMS_CHANGE_NOTIFICATION.REG_END;
END;
ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ VAL_TEST, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² SQL-Π±Π»ΠΎΠΊΠ΅ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π΄Π»Ρ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΡ, ΠΈ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° SYS. CHNF$_REG_INFO ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² Π½Π΅Π³ΠΎ ΠΈΠΌΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ, Π²ΡΠ΅ΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, ΡΠΈΠΏΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΡ, ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌΠΈ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΎΠΌΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Change Notification. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Ρ ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ. ΠΠΎΠ΄ΡΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΉ Π²Π΅Π΄Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ user_change_notification_regs. ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ»Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΎ ΡΠΎΠΌ, Π·Π° ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, ΠΈ REGID-ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ. ΠΡΠΈΠ²Π΅Π΄Ρ Π½ΠΈΠΆΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ.
1. ΠΡΠΎΡΠ΅Π΄ΡΡΠ°, Π²ΡΠ²ΠΎΠ΄ΡΡΠ°Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π² Ρ ΠΎΠ΄Π΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ»ΡΡΠ°Π»ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΉ, ΠΈ ΡΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΌΠ΅ΡΠ°Π»ΠΈ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
create or replace procedure count_of_regs (name_table in varchar2) is
count_reg number;
begin
select count (regid)
into count_reg
from user_change_notification_regs
where table_name = name_table;
dbms_output.enable;
dbms_output.put_line (to_char (count_reg));
end;
ΠΠ° Π²Ρ ΠΎΠ΄ ΠΏΠΎΠ΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ, ΠΏΡΠΈΡΠ΅ΠΌ ΡΡΠΎΠΈΡ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΊΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ ΡΡ Π΅ΠΌΠ° ΠΠ. ΠΠΎΠ³ΠΈΠΊΠ° ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° Π½Π° ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ΅ ΡΡΡΠΎΠΊ Π² Π·Π°ΠΏΡΠΎΡΠ΅ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ user_change_notification_regs, ΡΡΠΎ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π²ΡΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡΡ Π² Π‘Π£ΠΠ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ, ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½Π΅ΠΉ Π½Π΅Π»ΡΠ·Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ.
2. ΠΡΠΎΡΠ΅Π΄ΡΡΠ°, ΡΠ΄Π°Π»ΡΡΡΠ°Ρ Π²ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ, ΠΎΠ½Π° ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ° Π²Ρ ΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ user_change_notification_regs Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ DEREGISTER ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° DBMS_CHANGE_NOTIFICATION ΠΈ ΠΏΠΎ REGID ΠΊΠΎΠ΄Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΉ.
create or replace procedure delete_regs (name_table in varchar2) is
reg_id number;
num_rows number;
i number;
begin
select count (regid)
into num_rows
from user_change_notification_regs
where table_name = name_table;
for i in 1. num_rows loop
select regid
into reg_id
from user_change_notification_regs
where table_name = name_table
and rownum = 1;
dbms_change_notification.DEREGISTER (regid => reg_id);
end loop;
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΡΡΠΎΠΊ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ. Π’ΠΎ Π΅ΡΡΡ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Π΅ΠΌ ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ id ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈΡΡ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΈΠΏ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΡ, ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½Π΅Π»ΡΠ·Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡΠΌΠΈ.
create or replace procedure registr_of_callback (table_name in varchar2,
operation_type in varchar2,
callback_name in varchar2,
id_name in varchar2) as
id_md number;
op_type number;
— sql_text varchar2 (4000);
begin
if (operation_type = 'insert') then
op_type:= 2;
end if;
if (operation_type = 'update') then
op_type:= 4;
end if;
if (operation_type = 'delete') then
op_type:= 8;
end if;
if (operation_type = 'all') then
op_type:= 0;
end if;
execute immediate 'declare' || ' regds sys. chnf$_reg_info; ' ||
' regid number; ' || ' id_md number; ' ||
' qosflags number; ' || 'begin' ||
' qosflags:= dbms_change_notification.QOS_RELIABLE + dbms_change_notification.QOS_ROWIDS; ' ||
' regds:= sys. chnf$_reg_info (''' || callback_name ||
''', qosflags, 0,' || op_type || ', 0);' ||
' regid:= DBMS_CHANGE_NOTIFICATION.NEW_REG_START (REGDS); ' ||
'select ' || id_name || ' into id_md from ' ||
table_name || ' where rownum=1;' ||
'DBMS_CHANGE_NOTIFICATION.REG_END;' || 'end;';
end;
Π’ΡΠΈΠ³Π³Π΅Ρ, Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ Π΄Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ.
ΠΠ°Π½Π½ΡΠΉ ΡΡΠΈΠ³Π³Π΅Ρ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π² ΡΠ°Π±Π»ΠΈΡΡ VAL_TEST Π²Π½ΠΎΡΠΈΡΡΡ Π·Π°ΠΏΠΈΡΡ. ΠΠ½ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Change Notification ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠ°ΠΌΠΈ. Π’ΡΠΈΠ³Π³Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π΄ΡΠ±Π»ΠΈΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
create or replace trigger vt_in
after insert on val_test
declare
id_s number;
begin
select nvl (MAX (m.id_ms), 0) into id_s from val_test m;
insert into measurements values (id_s, SYSTIMESTAMP);
end;
Π±Π°Π·Π° notification ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ database
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π‘Π£ΠΠ. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Change Notification. ΠΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ ΠΌΠΎΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, Π² Π³ΡΠ°Π½ΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΡΡΠ΅ΡΠ° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ·ΡΡΠ°Π΅ΠΌΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΎΡΠ΅Π½Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°. ΠΠ½Π° Π½Π΅ Π³ΠΎΠ΄ΠΈΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
ΠΠ°ΠΊ Π½Π°ΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈ Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ ΡΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΡΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΡΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²Π½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈ Π½Π΅ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ, Change Notification ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΎΠ½Π° Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
1. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Change Notification http://docs.oracle.com/cd/B1930601/appdev.102/b14258/d_chngnt.htm
2. ΠΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ ΠΠ³ΠΎΡΡ ΠΠ΅Π»ΡΠ½ΠΈΠΊΠΎΠ²Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ http://www.oraclebi.ru/files/presentations/imelnikov/ChangeNotification.pdf