Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
17.04.2018
Размер:
189.44 Кб
Скачать

Объявление констант pl/sql

Синтаксис объявления константы имеет следующий вид:

имя_переменной тип_данных CONSTANT := выражение;

В отличие от переменных константам обязательно присваивается значение, которое нельзя изменять на протяжении времени жизни константы. Константы очень полезны для поддержания безопасности и дисциплины при разработке больших и сложных приложений. Например, если вы хотите гарантировать, что процедура PL/SQL не будет модифицировать передаваемые ей данные, можете объявить их константами. Если процедура все же попытается их модифицировать, PL/SQL активизирует исключение.

Присваивание значений переменным

Есть три способа изменения значения переменной. Во-первых, ей можно присвоить значение выражения, использовав оператор присваивания PL/SQL:

имя_переменной := выражение;

Во-вторых, переменная может быть передана PL/SQL-процедуре в качестве фактического параметра, соответствующего одному из формальных параметров IN OUT или OUT. После завершения процедуры значение переменной может измениться. Это демонстрируется в приведенном ниже примере, где для вызова процедуры использована именованная нотация.

CREATE PROCEDURE hike_priсes (old_price NUMBER,

percent_hike NUMBER := 5,

new_price OUT NUMBER)

IS

BEGIN

new_price := old_price + old_price * percent_hike / 100;

END hike_prices;

/

DECLARE

price_to_hike NUMBER(6,2) := 20;

hiked_price NUMBER(6,2) := 0;

BEGIN

dbms_output.put_line('Price before hike ' I I price_to_hike);

dbms_output.put_line('hiked_price before hike ' I I hiked_price);

hike_prices (old_price => price_to_hike, new_price => hiked_price) ;

dbms_output.put_line ( 'price_to_hike after hike ' || price_to_hike) ;

dbms_output.put_line ( 'hiked_price after hike ' || hiked_price) ;

END;

Третий способ изменения или присваивания значений использует предложение INTO в операторе SELECT:

DECLARE

product_quant NUMBER;

BEGIN

SELECT quantity_on_hand

INTO product_quant

FROM product

WHERE product_name = 'Small Widget';

dbms_output.put_line ('Small Widget ' || product_quant) ;

END;

Переменной product_quant присваивается значение, равное количеству товара Small Widget.

Использование переменных

Переменные являются фундаментальными компонентами PL/SQL-npoграмм. Они используются для хранения результатов вычислений, возврата значений функций, в качестве фактических параметров при вызовах функций и процедур, и т.д. Переменные позволяют сделать код приложений более понятным и легким для чтения, а сами приложения — более эффективными.

Предположим, что нужно выполнить вычисления с использованием текущего количества товара Small Widget — сравнить его с тем, которое было три месяца назад, или с количеством товара Medium Wodget. Используя для хранения этого количества переменную, можно избежать задержек, связанных с многократным считыванием значения из таблицы.

Присваивание переменным информативных имен облегчает чтение и понимание кода. Такой же эффект дает использование переменных для хранения результатов каких-нибудь очень сложных выражений вместо многократного включения этих выражений в код.

Соседние файлы в папке Lab5