ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ pl sql
ΠΡΠ½ΠΎΠ²Ρ PL SQL: ΡΡΡΡΠΊΡΡΡΠ°, ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΈΠ³Π³Π΅ΡΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π·Π°ΠΏΠΈΡΠΈ
PL/SQL (Programming Language for SQL) β ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Oracle, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ . Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Ρ PL/SQL. ΠΠ°ΡΠ½ΡΠΌ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ PL/SQL
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ Π΅Π΄ΠΈΠ½ΠΈΡΠ°ΠΌ Π² PL/SQL ΠΎΡΠ½ΠΎΡΡΡ: 1. ΠΡΠΎΡΠ΅Π΄ΡΡΡ β ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ (CREATE PROCEDURE); 2. Π€ΡΠ½ΠΊΡΠΈΡ β ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (CREATE FUNCTION). 3. PL/SQL-ΠΏΠ°ΠΊΠ΅ΡΡ β ΠΎΠ±ΡΠ΅ΠΊΡ ΠΠ, Π³ΡΡΠΏΠΏΠΈΡΡΡΡΠΈΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ, ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ PL/SQL. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· 2 ΡΠ°ΡΡΠ΅ΠΉ β ΡΠ΅Π»Π° ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ Π²Π°ΡΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ (ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΡΠΈΠΏΡ, ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΡΡΡΠΎΡΡ β Π²ΡΡ, ΡΡΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅). ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ β ΡΡΠΎ ΡΠ΅Π»ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ°Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΊΡΡΡΠΎΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°. 4. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ SQL: a. Native Dynamic SQL (NDS); b. DBMS_SQL. 5. ΠΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. 6. Π’ΡΠΈΠ³Π³Π΅ΡΡ β Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ·Π΅Ρ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ, Ρ. ΠΊ. ΠΈΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ ΠΏΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ . Π’ΡΠΈΠ³Π³Π΅ΡΡ Π±ΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅: BEFORE INSERT, BEFORE UPDATE, AFTER INSERT ΠΈ ΠΏΡ. 7. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ. 8. Π₯ΠΈΠ½ΡΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ (Oracle Hints) β ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ²Π½ΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΏΠ»Π°Π½ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ±ΡΠΈΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΈ ΡΠ΅Π»ΠΈ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΠΈΠ΅ ΠΏΠ»Π°Π½ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ, ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅).
ΠΠ»ΠΎΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° PL/SQL
Π Π±Π»ΠΎΠΊΠ΅ PL/SQL ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ Π΄ΠΎ 4-Ρ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², Π½ΠΎ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ. 1. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ. ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π»ΠΈΡΡ Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ Π±Π»ΠΎΠΊΠ°Ρ , ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π° Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. 2. Π Π°Π·Π΄Π΅Π» ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ. ΠΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΈ ΠΊΡΡΡΠΎΡΠΎΠ². 3. Π Π°Π·Π΄Π΅Π» ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. Π‘Π»ΡΠΆΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ (ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ). 4. ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°Π·Π΄Π΅Π». Π Π΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ΄ΡΠΎΠΌ PL/SQL Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ ΠΠΠ―ΠΠΠ’ΠΠΠ¬ΠΠ«Π ΡΠ°Π·Π΄Π΅Π».
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΡΡΠΊΡΡΡΡ PL/SQL-Π±Π»ΠΎΠΊΠ° Π΄Π»Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ:
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ Π²ΡΠ΅ 4 ΡΠ°Π·Π΄Π΅Π»Π°:
Π₯ΡΠ°Π½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°
ΠΠΎΠ΄ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° PL/SQL. ΠΡΠ·ΠΎΠ² ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡ Π² ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ. Π‘Π°ΠΌΠ° ΠΎΠ½Π° Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΠ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈ ΡΡΠΈΡΠ°Π΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ. Π‘ΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅Π»Π° ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠΌΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΅Ρ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΠΈ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π»ΠΈΠ±ΠΎ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π»ΠΈΠ±ΠΎ ΠΈΠ½ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ/ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Ρ 3-ΠΌΡ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. IN ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠΈΡΠ°ΡΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. OUT Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π² ΡΠ΅Π»ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½Π° Π²ΡΠ·ΡΠ²Π°Π»Π°ΡΡ. ΠΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ IN OUT Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠ΅Π»ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠ΅Π»Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΠΎ ΡΡΠΎ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° PL/SQL.
Π₯ΡΠ°Π½ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΡ PL/SQL Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ PL/SQL: Ρ Π½Π΅Ρ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΡΠ΅Π»ΠΎ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ β ΡΡΠ½ΠΊΡΠΈΡ Π½ΡΠΆΠ½Π° Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ SQL.
Π’ΡΠΈΠ³Π³Π΅ΡΡ
Π’ΡΠΈΠ³Π³Π΅ΡΠΎΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ PL/SQL, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠΈΠ³Π³Π΅ΡΠ½ΡΠΌ ΡΠΎΠ±ΡΡΠΈΠ΅ΠΌ.
Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΡΠΈΠ³Π³Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π΄ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ UPDATE, INSERT Π»ΠΈΠ±ΠΎ DELETE; Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠ΄Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ DDL; Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²Ρ ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π»ΠΈΠ±ΠΎ Π΅Π³ΠΎ Π²ΡΡ ΠΎΠ΄Π°; Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° Π»ΠΈΠ±ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΠ; Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ 3 ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ PL/SQL ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠ°ΠΌΠΈ: 1. Π’ΡΠΈΠ³Π³Π΅ΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΊ ΠΎΡΠ²Π΅Ρ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅. 2. Π£ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ² Π½Π΅Ρ ΡΠΏΠΈΡΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². 3. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠ° ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² PL/SQL
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ. ΠΠ½ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠ°Π·Π½ΡΡ Π²ΠΈΠ΄ΠΎΠ². Π‘ ΡΡΡΡΠΎΠΌ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , Π° ΡΡΠΎΠ±Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ ΠΈΠΌΠ΅Π½Π°. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΠΈΡΠ»Π° Π² PL/SQL Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ° NUMBER, ΡΠ΅ΠΊΡΡ β Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ CHAR Π»ΠΈΠ±ΠΎ VARCHAR2. Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠΎ Π² PL/SQL ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Π»ΡΠ±ΡΡ ΠΈΠ· Π½ΠΈΠΆΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠΎΡΠΌ Π·Π°ΠΏΠΈΡΠΈ:
ΠΠ΄Π΅ΡΡ ΠΈΠΌΡ_ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ β Π»ΡΠ±ΠΎΠΉ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ PL/SQL ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. Π’Π°ΠΊΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½: 1. ΠΠΌΠ΅ΡΡ Π² Π΄Π»ΠΈΠ½Ρ Π½Π΅ Π±ΠΎΠ»ΡΡΠ΅ 30 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΡΠΈΡΡΠΌ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π² Π·Π°ΠΏΠΈΡΠΈ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ Π·Π½Π°ΠΊΠΎΠ² ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ. 2. ΠΠ°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Π±ΡΠΊΠ²Ρ. 3. Π‘ΠΎΡΡΠΎΡΡΡ Π»ΠΈΡΡ ΠΈΠ· Π±ΡΠΊΠ², ΡΠΈΡΡ 0-9, ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ, Π·Π½Π°ΠΊΠ° Π΄ΠΎΠ»Π»Π°ΡΠ° ΠΈ Π·Π½Π°ΠΊΠ° ΡΡΠ½ΡΠ°. 4. ΠΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ SQL ΠΈ PL/SQL, ΠΈΠΌΠ΅ΡΡΠΈΠΌΠΈ ΡΠΏΠ΅ΡΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΈΠΌΠ΅Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ β ΡΠ»ΠΎΠ²ΠΎ BEGIN, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ΅Π΅ Π½Π°ΡΠ°Π»ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ PL/SQL-Π±Π»ΠΎΠΊΠ°.
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅, ΡΡΠΎ ΡΠΈΠΏ_Π΄Π°Π½Π½ΡΡ β Π»ΡΠ±ΠΎΠΉ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π² SQL Π»ΠΈΠ±ΠΎ PL/SQL. ΠΠ΄Π΅ΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ NOT NULL ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠΌΠ΅Π»Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΊΠ°Π·Π°Π½, ΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ PL/SQL
ΠΠ°ΠΏΠΈΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΎΡ ΡΠ΅Ρ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΡΡΠΌ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠΊΠ° ΠΆΠΈΠ·Π½ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΆΠ΅Π»Π°Π΅ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ PL/SQL-ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π΅ΠΉ, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ. Π Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΡΡ-ΡΠ°ΠΊΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅, PL/SQL Π²ΠΎΠ·Π±ΡΠ΄ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΠΏΠΈΡΠΈ Π² PL/SQL
Record PL/SQL
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΏΠΈΡΠΈ Record Π² PL/SQL Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ.
Record (Π·Π°ΠΏΠΈΡΡ) β ΡΡΠΎ Π³ΡΡΠΏΠΏΠ° ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΏΠΎΠ»ΡΡ , ΠΏΡΠΈΡΡΠΌ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΠΈΠΌΡ ΠΈ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ ΡΡΠΎΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Record ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΡΠΎΠΊΡ ΡΠ°Π±Π»ΠΈΡΡ Π»ΠΈΠ±ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ ΠΈΠ· ΡΡΡΠΎΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ Record Π² PL/SQL
ΠΠ±ΡΡΠ²ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π°ΡΡΠΈΠ±ΡΡ %ROWTYPE, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΡΡΠΎΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΠ Π±Π΅Π· Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠΎΠ². ΠΡΠΈ ΡΡΠΎΠΌ Π²Π°Ρ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΎΠ»Π±ΡΠΎΠ². ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΆΠ΅Π»Π°Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π»ΠΈΠ±ΠΎ ΡΡΠΎΠ»Π±ΡΡ ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ VIEW Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ CURSOR Π² ΡΠ΅Π»ΡΡ Π²ΡΠ±ΠΎΡΠ° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΈ Π»ΡΠ±ΡΡ Π½ΡΠΆΠ½ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, Π° ΠΏΠΎΡΠΎΠΌ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡ %ROWTYPE ΠΊ CURSOR Π»ΠΈΠ±ΠΎ VIEW.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² PL/SQL ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° Record:
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: 1) type_rec_name β ΠΈΠΌΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Record; 2) var_rec β ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Record-ΡΠΈΠΏΠ°; 3) field_1, field_2,β¦ field_n β ΠΏΠΎΠ»Ρ Record-ΡΠΈΠΏΠ°; 4) datatype β ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»Π΅ΠΉ Record-ΡΠΈΠΏΠ°. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°:
ΠΠ±Π·ΠΎΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ PL/SQL

PL/SQL ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ Β«Π΄ΠΆΠ΅Π½ΡΠ»ΡΠΌΠ΅Π½ΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡΒ» ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊ-ΠΆΠ΅ ΡΡΠ΄ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ². Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ .
Π§Π’Π Π’ΠΠΠΠ Β«Π‘Π’ΠΠ’ΠΠ§ΠΠ‘ΠΠΠ― Π’ΠΠΠΠΠΠ¦ΠΠ― Β»?
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ (ΠΈΠ»ΠΈ ΡΠΈΠ»ΡΠ½ΠΎΠΉ) ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ (Π° Π½Π΅ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ). Π ΡΠΈΡΠ»Ρ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΠΈΠ»ΡΠ½ΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, ΠΎΡΠ½ΠΎΡΡΡΡΡ PL/SQL, Ada, C ΠΈ Pascal. Π―Π·ΡΠΊΠΈ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ (ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ JavaScript, Perl ΠΈΠ»ΠΈ Ruby) Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΡΠΈΠΏΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΠ²Π»ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΡΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π½Π°Π΅Ρ ΡΠΎΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π±ΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠΆΠ΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ΅ΡΠ°ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΈΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ ΠΏΡΠΎΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ Π½Π° Π±Π°Π·Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ.
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
ΠΠ»Ρ ΠΎΡΠ΅Π½Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ Π² PL/SQL ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ CLOB (Character Large Object) ΠΈ NCLOB (NLS Character Large Object). ΠΠΎ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ PL/SQL ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ LONG. ΠΡΠΈ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ Π΄Π°Π½Π½ΡΡ ; ΡΠ°ΠΊ, Π² Oracle11g ΡΠΈΠΏ LOB ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Ρ ΡΠ°Π½ΠΈΡΡ Π΄ΠΎ 128 ΡΠ΅ΡΠ°Π±Π°ΠΉΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ° LONG ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠ°Π²ΠΈΠ». ΠΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ Π² Oracle8 ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ .
Π§ΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
Π PL/SQL ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ . Π’ΠΈΠΏ NUMBER Π΄Π°Π²Π½ΠΎ Π±ΡΠ» ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠΈΠΏΠΎΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ; ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Π»ΡΠΌΠΈ ΠΈ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΊΠ°ΠΊ Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ, ΡΠ°ΠΊ ΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ. ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΠΏΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ NUMBER :
ΠΠ·-Π·Π° ΡΠ²ΠΎΠ΅ΠΉ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΠΏΡΠΈΡΠΎΠ΄Ρ ΡΠΈΠΏ NUMBER ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ΄ΠΎΠ±Π΅Π½ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄Π΅Π½Π΅ΠΆΠ½ΡΠΌΠΈ ΡΡΠΌΠΌΠ°ΠΌΠΈ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π΅ΠΌΡ Π½Π΅ ΠΏΡΠΈΡΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² Π½Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0.95, ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π²Ρ ΠΏΡΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, Π° Π½Π΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΡΡ (ΡΠΊΠ°ΠΆΠ΅ΠΌ, 0.949999968).
ΠΠ°ΡΠ°, Π²ΡΠ΅ΠΌΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ, Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄ Π΄Π°ΠΆΠ΅ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
ΠΠ²ΠΎΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ROWID ΠΈ UROWID
Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ REF CURSOR
Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ REF CURSOR ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΊΡΡΡΠΎΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ SQL-ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π’ΠΈΠΏ REF CURSOR ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² Π΄Π²ΡΡ ΡΠΎΡΠΌΠ°Ρ : ΡΠΈΠ»ΡΠ½ΠΎΠΉ ΠΈ ΡΠ»Π°Π±ΠΎΠΉ. PL/SQL ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΠ·ΡΠΊΠΎΠ² ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Π° ΡΠ»Π°Π±ΡΠΉ ΡΠΈΠΏ REF CURSOR ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ REF CURSOR ΠΊΡΡΡΠΎΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠ° %ROWTYPE :
Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ
Π Oracle9i ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ΄Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΠΌ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ XML (eXtensible Markup Language) ΠΈ URI (Universal Resource Identifier). Π Oracle ΠΈΠΌΠ΅ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ XML ΠΈ URI, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² URI ( DBUri-REF ), ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Oracle ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ URI ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π½ΠΈΠΌ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Β«AnyΒ»
ΠΡΠ° Π³ΡΡΠΏΠΏΠ° ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ°ΡΡΡ Π² Oracle9i, Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ Oracle. Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Any ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ², ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π°Π±ΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π΄Π°Π½Π½ΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° SQL. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² (ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΄Π»Ρ Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²) ΠΌΠΎΠΆΠ½ΠΎ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , Ρ ΡΠ°Π½ΠΈΠΌΡΡ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡ ΠΊ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ!
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
ΠΠ· Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ Oracle ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠΎΠΈΡΡ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ ΠΎΡΡΠ°ΠΆΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . Π Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Oracle ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π΅ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ .
ΠΡΠ½ΠΎΠ²Ρ ΡΠ·ΡΠΊΠ° PL/SQL

ΠΠ°Π·ΠΎΠ²ΡΠΉ Π±Π»ΠΎΠΊ PL/SQL
ΠΠ»ΠΎΠΊΠΎΠΌ Π² PL/SQL Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. ΠΠ»ΠΎΠΊ ΠΊΠΎΠ΄Π° PL/SQL, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΎΠ½ Π²Π½ΡΡΡΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΡ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅, ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΡΡΠΊΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΡΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°, ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° PL/SQL:
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² PL/SQL
Π ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ DECLARE ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π² PL/SQL ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ DATE, NUMBER, VARCHAR2 ΠΈΠ»ΠΈ CHAR, ΡΠ°ΠΊ ΠΈ ΡΠΎΡΡΠ°Π²Π½ΠΎΠ³ΠΎ Π²ΡΠΎΠ΄Π΅ VARRAY. ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, Π² PL/SQL Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊ BINARY_INTEGER ΠΈ BOOLEAN.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² PL/SQL:
ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
ΠΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡ %TYPE ΠΈ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΡΠΎ Π΅Π΅ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ° ΡΠ°Π±Π»ΠΈΡΡ:
ΠΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π°ΡΡΠΈΠ±ΡΡΠ° %ROWTYPE ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΠΈ (ΡΡΡΠΎΠΊΠΈ) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ Π·Π°ΠΏΠΈΡΡ DeptRecord Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²ΡΠ΅ ΡΠ΅ ΠΆΠ΅ ΡΡΠΎΠ»Π±ΡΡ, ΡΡΠΎ ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° department, Π° ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄Π»ΠΈΠ½Π° ΡΡΠΈΡ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π² Π½Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎ:
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² PL/SQL
ΠΠΎΡΠ»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° BEGIN ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ Π²Π²ΠΎΠ΄ΠΈΡΡ Π²ΡΠ΅ ΡΠ²ΠΎΠΈ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠ΅ SQL-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ. ΠΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ SQL. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² SELECT ΠΈ INSERT Π² PL/SQL, ΠΏΡΠ°Π²Π΄Π°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎΠ± ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ , ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ .
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° SELECT Π² PL/SQL
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° SELECT Π² PL/SQL Π½ΡΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ DML-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π² PL/SQL
ΠΡΠ±ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ INSERT, DELETE ΠΈΠ»ΠΈ UPDATE ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² PL/SQL ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ SQL. ΠΠ΄Π½Π°ΠΊΠΎ Π² PL/SQL ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ COMMIT, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
Π PL/SQL Π»ΡΠ±Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ (exception). Π PL/SQL Π΅ΡΡΡ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅. ΠΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π»ΡΠ±ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ PL/SQL. Π ΡΠ»ΡΡΠ°Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π·Π° ΡΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° RAISE.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° RAISE Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ:
Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π² PL/SQL
Π PL/SQL ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΈΠ΄ΠΎΠ² ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΡΡΡΠΊΡΡΡ (control structures), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΡΠ΅ ΠΎΠ½ΠΈ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ ΠΌΠΎΠ΅Π³ΠΎ Π±Π»ΠΎΠ³Π°.
Π£ΡΠ»ΠΎΠ²Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
ΠΠ»Π°Π²Π½ΠΎΠΉ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ Π² PL/SQL ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ IF, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΎΡΠΌ: IF-THEN, IF-THEN-ELSE ΠΈ IF-THEN-ELSEIF. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° IF-THEN-ELSEIF:
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠΈΠΊΠ»ΠΎΠ² Π² PL/SQL
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠΈΠΊΠ»ΠΎΠ² Π² PL/SQL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π»ΠΈΠ±ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·, Π»ΠΈΠ±ΠΎ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΡΠΌ ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΡΠΌ. Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π°Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΈΠ΄Ρ ΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ.
ΠΡΠΎΡΡΠΎΠΉ ΡΠΈΠΊΠ»
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° SQL-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ LOOP ΠΈ END LOOP. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ EXIT Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠΈΠΊΠ». ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠΎΡΠ½ΠΎ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΈΠΊΠ». Π ΡΠ»ΡΡΠ°Π΅ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΡΠΈΠΊΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ LOOP ΠΈ END LOOP Π»ΠΎΠ³ΠΈΠΊΠΈ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΈΠΊΠ» Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ quality_grade Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ 6:
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΡΠΎΠΉ Π²ΠΈΠ΄ ΡΠΈΠΊΠ»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ LOOP. EXIT. WHEN, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΠΊΠ»Π° ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ WHEN. ΠΠ½ΡΡΡΠΈ WHEN ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΠΈ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ, ΡΠΈΠΊΠ» Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ. ΠΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
Π¦ΠΈΠΊΠ» WHILE
Π¦ΠΈΠΊΠ» WHILE ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΠΈΠΊΠ»Π°, ΠΈ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΎΠ½ΠΎ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ LOOP ΠΈ END LOOP. ΠΠΎΠ³Π΄Π° ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ Π±ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΡΠΈΠΊΠ»Π°. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΠΊΠ»Π° WHILE:
Π¦ΠΈΠΊΠ» FOR
Π¦ΠΈΠΊΠ» FOR ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·. ΠΠ½ ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΊΠ» do, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΠΊΠ»Π° FOR:
ΠΠ°ΠΏΠΈΡΠΈ Π² PL/SQL
ΠΠ°ΠΏΠΈΡΠΈ (records) Π² PL/SQL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΡΠ΅Π»ΠΎΠ΅. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎΠ»Ρ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡ ROW%TYPE ΠΈ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π·Π°ΠΏΠΈΡΡΡ ΡΡΠΎΠ»Π±ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΊΡΡΡΠΎΡΠ°, Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°ΠΏΠΈΡΠΈ:
ΠΠ»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π²Π½ΡΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΡΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠΎΠ²
ΠΡΡΡΠΎΡΠΎΠΌ (cursor) Π² Oracle Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±Π»Π°ΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ SQL-Π·Π°ΠΏΡΠΎΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΌ Π½Π°Π±ΠΎΡΠ΅ ΡΡΡΠΎΠΊΠΈ. ΠΡΡΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Oracle ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ DML-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π½Π΅ΡΠ²Π½ΡΠΌΠΈ, Π° ΠΊΡΡΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β ΡΠ²Π½ΡΠΌΠΈ.
ΠΠ΅ΡΠ²Π½ΡΠ΅ ΠΊΡΡΡΠΎΡΡ
ΠΠ΅ΡΠ²Π½ΡΠ΅ ΠΊΡΡΡΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Oracle Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠΎΠ΄Π΅ PL/SQL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ SELECT. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π»ΠΈΡΡ Π² ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ SQL-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° PL/SQL ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ SELECT, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΡΠ°:
Π―Π²Π½ΡΠ΅ ΠΊΡΡΡΠΎΡΡ
Π―Π²Π½ΡΠ΅ ΠΊΡΡΡΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΡΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ Π·Π° Π΄ΡΡΠ³ΠΎΠΌ. ΠΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π²ΡΠ΅Π³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ SQL-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ²Π½ΡΠΉ ΠΊΡΡΡΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅ Π±Π»ΠΎΠΊΠ° PL/SQL Π²Π½ΡΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»Π° DECLARE, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π½Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π² ΠΊΠΎΠ΄Π΅.
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΡΠ° ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ°ΠΏΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ Π.4 ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΡΡΠΎΡΠ° ΠΈ Π·Π°ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π°.
ΠΡΡΠΈΠ±ΡΡΡ ΠΊΡΡΡΠΎΡΠΎΠ²
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ Π.4, Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠΈΠΊΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ ΠΊΡΡΡΠΎΡΠ° %NOTFOUND. ΠΡΡΠΈΠ±ΡΡΡ ΠΊΡΡΡΠΎΡΠΎΠ² ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ²Π½ΡΠΌΠΈ ΠΊΡΡΡΠΎΡΠ°ΠΌΠΈ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½ΠΈΠΆΠ΅.
ΠΡΡΡΠΎΡΠ½ΡΠΉ ΡΠΈΠΊΠ» FOR
ΠΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ²Π½ΡΡ ΠΊΡΡΡΠΎΡΠΎΠ² ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΠΊΡΡΡΠΎΡ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡ ΠΊΡΡΡΠΎΡ. ΠΡΡΡΠΎΡΠ½ΡΠΉ ΡΠΈΠΊΠ» FOR ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΠΎ ΠΎΡΠΊΡΡΡΠΈΡ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΊΡΡΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΠ΅ΠΌ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π΄Π΅Π»ΠΎ. Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ Π.5 ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΊΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° FOR.
ΠΡΡΡΠΎΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
ΠΡΡΡΠΎΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ΅ΠΊΡΡΡΡ ΡΡΡΠΎΠΊΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΌ Π½Π°Π±ΠΎΡΠ΅. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΡΠ°, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΊΡΡΡΠΎΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π΅ΠΉ Π½ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΅Π΅ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌ. Π‘ΠΎΠ·Π΄Π°ΡΡΡΡ ΠΊΡΡΡΠΎΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² PL/SQL ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π‘Π½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΈΠΏ REF CURSOR, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ΠΠ°ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΌΠΈ ΠΊΡΡΡΠΎΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° EmpCurType Π² Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° PL/SQL Π»ΠΈΠ±ΠΎ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ (ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ):
ΠΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ
ΠΡΠΎΡΠ΅Π΄ΡΡΡ Π² PL/SQL ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ DML-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Oracle:
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, ΡΡΠ½ΠΊΡΠΈΠΈ Π² PL/SQL Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
ΠΠ°ΠΊΠ΅ΡΡ (packages) Π² Oracle ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° Π²ΡΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΡ Π²Π½ΡΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ°ΠΊΠ΅ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΌΠΎΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ: ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΠ΅Π»Π°. Π ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ΅ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² Π΅Π³ΠΎ ΡΠΎΡΡΠ°Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΡΡΡΠΎΡΡ ΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ), Π° Π² ΡΠ΅Π»Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ ΡΡΠΈΡ ΠΊΡΡΡΠΎΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ Π.6 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Oracle.
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ emp_pkg Π΄Π»Ρ Π½Π°Π³ΡΠ°ΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° Π½Π°Π΄Π±Π°Π²ΠΊΠΎΠΉ ΠΊ Π·Π°ΡΠΏΠ»Π°ΡΠ΅, Π²ΡΠ΅, ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ β Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΠ½ΠΎΠ²Ρ ΡΠ·ΡΠΊΠ° PL/SQL: ΡΡΡΡΠΊΡΡΡΠ° Π±Π»ΠΎΠΊΠ° PL/SQL ΠΈ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ

ΠΡΠ»ΠΈ ΠΏΡΠΈΠΊΠ°Π·Π°ΡΡ PL/SQL Β«ΠΏΠΎΠ΄ΠΊΠΈΠ½Ρ-ΠΊΠ° ΠΌΠ½Π΅ Π΅ΡΠ΅ Ρ ΠΏΠΎΠ»Π΄ΡΠΆΠΈΠ½Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉΒ», Π΅Π΄Π²Π° Π»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ PL/SQL Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΡΡΠ°Π²Π»ΡΡΡ Π²ΡΠ΅ ΡΠΎΡΠΊΠΈ Π½Π°Π΄ Β«iΒ». ΠΠΎΡΡΠΎΠΌΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±Π»ΠΎΠ³Π° ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ PL/SQL β ΡΡΡΡΠΊΡΡΡΠ° Π±Π»ΠΎΠΊΠΎΠ² PL/SQL.
Π‘ΡΡΡΠΊΡΡΡΠ° Π±Π»ΠΎΠΊΠ° PL/SQL
Π PL/SQL, ΠΊΠ°ΠΊ ΠΈ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ², Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅ΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ΠΉ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊ. ΠΠ½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ Π³ΡΠ°Π½ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. PL/SQL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅, ΡΠ°ΠΊ ΠΈ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ (ΡΠΎ Π΅ΡΡΡ Π±Π»ΠΎΠΊΠΈ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΈΠ³Π³Π΅ΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠΈΠΏΡ.
ΠΠ»ΠΎΠΊ PL/SQL ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΠΎ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ.
Π‘ΡΡΡΠΊΡΡΡΠ° Π±Π»ΠΎΠΊΠ° PL/SQL Π΄Π»Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΡ. 1.
Π ΠΈΡ. 1. Π‘ΡΡΡΠΊΡΡΡΠ° Π±Π»ΠΎΠΊΠ° PL/SQL
ΠΠ° ΡΠΈΡ. 2 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π²ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Π°. ΠΡΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° PROCEDURE ΠΈ, ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ, Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ END.
Π ΠΈΡ. 2. ΠΡΠΎΡΠ΅Π΄ΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π²ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Π°
ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ PL/SQL
ΠΠΎΠ³Π΄Π° ΠΊΡΠΎ-ΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ, ΠΎΠ½ Π½Π΅ Π½Π°Π·ΡΠ²Π°Π΅Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Π’ΠΎ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈ ΠΎΠ± Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ PL/SQL, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π½Π° ΡΠΈΡ. 3: Π² Π½Π΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅Ρ ΡΠ°Π·Π΄Π΅Π»Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, Π±Π»ΠΎΠΊ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ DECLARE (ΠΈΠ»ΠΈ BEGIN ). ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ Π±Π»ΠΎΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΊ Π½Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ Π±Π»ΠΎΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ PL/SQL β ΠΎΠ±ΡΡΠ½ΠΎ Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ .
Π ΠΈΡ. 3. ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ Π±Π»ΠΎΠΊ Π±Π΅Π· ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠ±ΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° PL/SQL:
ΠΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°. ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ Π±Π»ΠΎΠΊ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° BEGIN ΠΈ END, ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄Π½Π° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²:
ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ Π±Π»ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎ ΡΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ Π±Π»ΠΎΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ. ΠΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ , Π² ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠ΄ PL/SQL Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π»ΠΈΠ±ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ:
ΠΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ β ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ (Π±ΡΠ΄Ρ ΡΠΎ ΡΡΠΈΠ³Π³Π΅Ρ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°).
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ PL/SQL
Π₯ΠΎΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ PL/SQL ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Oracle, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ². Π Π°Π½Π΅Π΅ Π²Ρ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ (ΡΠΌ. ΡΠΈΡ. 1) ΠΈ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΈΡ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ΅Π»ΠΎΠΌ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° Π½Π΅Π³ΠΎ, Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ RETURN:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Oracle ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· SQL-ΠΊΠΎΠΌΠ°Π½Π΄, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠ΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ SQL).
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ PL/SQL
PL/SQL, ΠΊΠ°ΠΊ ΠΈ ΡΠ·ΡΠΊΠΈ Ada ΠΈ Pascal, ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΠ·ΡΠΊΠΎΠ² Ρ Π±Π»ΠΎΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ, ΡΠΎ Π΅ΡΡΡ Π±Π»ΠΎΠΊΠΈ PL/SQL ΠΌΠΎΠ³ΡΡ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ·ΡΠΊ C ΡΠΎΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈ, Π½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ C Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΡΠ½ΠΎ-ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² Π½Π΅ΠΌ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ PL/SQL ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ:
ΠΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΠΈ /* ΠΈ */ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π½Π°ΡΠ°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π². ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ²Π΅Π½Ρ (ΡΠΈΡ. 4).
Π ΠΈΡ. 4. ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π°.
ΠΠ±Π»Π°ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² PL/SQL
Π PL/SQL ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΡΠ²Π»ΡΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ Π±Π»ΠΎΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ. ΠΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ, Π²ΡΠ΅ ΡΡΠΈ ΡΡΡΡΠΊΡΡΡΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ calc_totals ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ year_total), ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ Π±Π»ΠΎΠΊΠ΅, Π΄Π»Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ.
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ PL/SQL ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ β ΡΡΠ°ΡΡΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (Π±Π»ΠΎΠΊ, ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°:
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ scope_demo.g_global ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Π»ΡΠ±ΠΎΠΉ ΡΡ Π΅ΠΌΡ, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠ΅ΠΌ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠ΅ΠΉ EXECUTE Π΄Π»Ρ scope_demo.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ l_salary ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ set_global.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ l_inner ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅; ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΊΠΈ local_block Π΄Π»Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡ Π±Π»ΠΎΠΊΡ.
Π£ΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΡΠΎΠ»Π±ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ SQL
Π‘ΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΡΠΎΠ»Π±ΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π΅ ΡΡΠΎΡΠ½ΡΠ»ΠΈΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π΄ΡΡΠ³Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· Ρ ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΡΠ»ΠΎΠΊ (Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΠΏΠΎΠ»ΡΠΆΠΈΡΠ½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ):
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠΎΠ»Π±Π΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠΎΡΠ½ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠΌ ΡΠ°Π±Π»ΠΈΡΡ, ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΊΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°.
ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΠΎΠ± ΡΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ β Π½ΠΎ Π·Π°ΡΠ΅ΠΌ ΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½? ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΅Π½Ρ Π²Π΅ΡΠΊΠΈΡ ΠΏΡΠΈΡΠΈΠ½:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π΅ ΠΈΠ· ΡΡΠΈΡ ΠΏΡΠΈΡΠΈΠ½.
Π£Π΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΡΠ΅Π½ΠΈΡ
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° SQL, Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ PL/SQL, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠΎΠ»Π±ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. Π Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ , ΠΏΡΠΎΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ SQL ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΡΡΠΈ ΡΡΡΠ»ΠΊΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ Π΄Π»ΠΈΠ½Π½ΡΠ΅, ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SQL Ρ Π΄Π΅ΡΡΡΠΊΠ°ΠΌΠΈ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΎΡΠ½ΡΠΌΠΈ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΡΠΎΠ»Π±ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
ΠΠ΅Π· ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΡΠΎΠ»Π±ΡΡ. Π‘ ΡΡΠΎΡΠ½Π΅Π½ΠΈΡΠΌΠΈ ΡΡΠ°Π·Ρ Π²ΠΈΠ΄Π½ΠΎ, ΠΊ ΡΠ΅ΠΌΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ ΡΡΡΠ»ΠΊΠ°.
Β«ΠΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρβ¦ ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡ Π΅ΠΌΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΡΠ°Π·Π»ΠΈΡΠ°Π΅ΠΌ ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΡΠΎΠ»Π±ΡΡ. ΠΠΌΠ΅Π½Π° Π²ΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ βl_β, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΡΠ°Π·Ρ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡΒ».
ΠΠ°, Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ; Π²ΡΠ΅ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ (ΠΈ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ) ΠΏΡΠ°Π²ΠΈΠ»Π° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠ°Π»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½ΠΈΡ (ΡΡΠΎ ΡΡΠΎ β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ? Π ΠΊΠ°ΠΊΠΎΠΌΡ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ½Π° ΠΎΡΠ½ΠΎΡΠΈΡΡΡ?).
ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΏΡΠ°Π²ΠΈΠ»Π° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ ΠΏΠΎΠ»Π΅Π·Π½Ρ, Π½ΠΎ ΠΎΠ½ΠΈ Π΅ΡΠ΅ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ PL/SQL Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ Π·Π°Π΄ΡΠΌΠ°Π»ΠΈ.
ΠΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡΠ»ΠΈ Π½Π΅ ΡΡΠΎΡΠ½ΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ PL/SQL Π²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ SQL, ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, ΠΌΠΎΠΆΠ΅Ρ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΡΡΡΠ°ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΆΠ΅ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ SQL Π±Π΅Π· ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ ΡΡΡΠ»ΠΎΠΊ:
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ l_salary ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ l_salary, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ set_global. Π― ΡΠ΅ΡΡΠΈΡΡΡ ΡΠ²ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ! ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ, Π²ΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½Ρ.
Π ΡΠ΅ΡΠ΅Π· Π΄Π²Π° Π³ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΏΡΠΎΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ employees ΡΡΠΎΠ»Π±Π΅Ρ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠΌΡ Β«l_salaryΒ». ΠΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
ΠΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ SQL Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Oracle Π²ΡΠ΅Π³Π΄Π° Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΠΎΠΈΡΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Π΄Π»Ρ Π½Π΅ΡΡΠΎΡΠ½Π΅Π½Π½ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΡΠ°Π±Π»ΠΈΡ. ΠΡΠ»ΠΈ Π½Π°ΠΉΡΠΈ ΡΡΠΎΠ»Π±Π΅Ρ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ, Oracle ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΠΈΡΠΊΡ ΡΡΠ΅Π΄ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ PL/SQL Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΡ employee ΡΡΠΎΠ»Π±ΡΠ° l_salary ΠΌΠΎΠ΅ΠΉ Π½Π΅ΡΡΠΎΡΠ½Π΅Π½Π½ΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅ l_salary Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ SELECT ΡΡΠ°Π²ΠΈΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ PL/SQL, Π° ΡΡΠΎΠ»Π±Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ?
ΠΠ°ΠΊΠ΅Ρ scope_demo ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ, Π½ΠΎ ΡΠ΅ΠΊΡΠΈΡ WHERE Π·Π°ΠΏΡΠΎΡΠ° Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ. ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ l_salary, Π° ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ»Π±ΡΠ° salary Π² ΡΡΡΠΎΠΊΠ΅ ΡΠ°Π±Π»ΠΈΡΡ employees ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ»Π±ΡΠ° l_salary ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠΎΠΊΠΈ. ΠΡΡΡΠΊΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π±ΡΠ²Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΏΡΠΎΡΡΠΎ!
ΠΠ΅ ΠΏΠΎΠ»Π°Π³Π°ΠΉΡΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Β«ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉΒ» ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ; ΡΡΠΎΡΠ½ΡΠΉΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ SQL. ΠΡΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ ΡΠΈΡΠΊ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡΡ ΡΠ°Π±Π»ΠΈΡ.
ΠΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ PL/SQL
ΠΠ°ΠΆΠ½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ ΠΎΠ±Π»Π°ΡΡΡΡ Π΅Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ. ΠΠ°Π½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ.
Β«ΠΠΈΠ΄ΠΈΠΌΡΠ΅Β» ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ:
ΠΠ±Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ first_day ΠΈ last_day ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ Π±Π»ΠΎΠΊΠ΅, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ Π½ΠΈΠΌ ΡΠΊΠ°Π·Π°Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½Π° Π±Π΅Π· ΡΡΠΎΡΠ½ΡΡΡΠΈΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠ². Π’Π°ΠΊΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΠΌΠΈ. Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΈΠ΄ΠΈΠΌΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ:
Π£ΡΠΎΡΠ½Π΅Π½Π½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ
Π’ΠΈΠΏΠΈΡΠ½ΡΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΡΠ²Π»ΡΡΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° (ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , ΠΈΠΌΠ΅Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ). Π§ΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΈ ΡΠΎΡΠΊΡ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠΌΡ ΡΡΠΎΠ»Π±ΡΠ° ΡΡΠΎΡΠ½ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ compute_means ΠΏΠ°ΠΊΠ΅ΡΠ° price_util, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Oracle Ρ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ scott.
Π£ΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
PL/SQL ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π΄Π»Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠ»ΠΎΠΊ. Π’Π°ΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΏΠ°ΠΊΠ΅Ρ company_pkg ΠΈ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ last_company_id:
ΠΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° β Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ°:
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅Π°Π½ΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ; ΠΎΠ½ΠΎ Π½Π΅ Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ ΡΠ°Π·ΡΡΠ²Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΡΠ½ΠΈΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½:
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ salary, ΠΎΠ±Π»Π°ΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Π·Π°ΡΠ΅ΠΌ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ salary Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ Π±Π»ΠΎΠΊΠ΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π² ΡΡΠΎΠΌ Π±Π»ΠΎΠΊΠ΅, Π³Π΄Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π²ΠΈΠ΄ΠΈΠΌΠ° Π±Π΅Π·ΠΎ Π²ΡΡΠΊΠΈΡ ΡΡΠΎΡΠ½Π΅Π½ΠΈΠΉ. Π§ΡΠΎΠ±Ρ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ salary, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠΉ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΎΡΠ½ΠΈΡΡ Π΅Π΅ ΠΈΠΌΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (cal_totals.salary).
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Ρ . Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (order_id β ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΡΠ°Π±Π»ΠΈΡΡ orders):
ΠΡΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»ΠΈΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ orders Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ order_id. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ SQL ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΈΠΌΠ΅Π½Π° ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌ PL/SQL. Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ WHERE (order_id = order_id) Π²ΡΠ΅Π³Π΄Π° ΠΈΡΡΠΈΠ½Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠΏΠ°Π΄Π°ΡΡ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈ ΡΠ°Π·Π±ΠΎΡΠ΅ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. (Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ remove_order.order_id.)
Π PL/SQL ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ΅Π»ΡΠΉ ΡΡΠ΄ ΠΏΡΠ°Π²ΠΈΠ» ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΈΠΌΠ΅Π½, Π° ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Π Ρ ΠΎΡΡ Π·Π½Π°ΡΡ ΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ². Π‘ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΏΠΈΡΠ°ΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΠΊΠΎΠ΄! ΠΡΠ»ΠΈ ΠΆΠ΅ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠΎΡΠ½ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΅Π΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡ Π΅ΠΌΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ².
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠ°Π²Π΅ΡΡΠ°Ρ ΡΠ΅ΠΌΡ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ PL/SQL, ΠΊΠ°ΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (nested programs). ΠΠ»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°. ΠΠ»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΌ ΡΠ°Π½Π΅Π΅ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ Π±Π»ΠΎΠΊΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΏΡΠΎΡΠ°ΡΡ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠ΅ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠ°.








