НОУ ІНТУІТ, Лекція, PL
Змінні PL/SQL
Традиційно в програмуванні прийнято вважати, щозмінна- це іменована комірка пам'яті, ім'я якої використовується для доступу до даних. Можна сказати просто, щозмінна- це позначення, що замінює якесь значення, чи то число, масив, рядок або ще якийсь тип. Змінні використовуються для таких цілей:
- Тимчасове зберігання даних.
- Маніпуляція значеннями, що зберігаються.
- Можливість багаторазового використання.
- Простота обслуговування.
- Підвищення читання програми.
З поняттям змінна найчастіше пов'язуються такі поняття, як область видимості змінної, ідентифікатори, її тип та ім'я.
Типи змінних PL/SQL
PL/SQL, як і будь-яку іншу мову програмування, оперує різними типами даних (табл. 15.1). Змінні PL/SQL:
- Скалярні (Scalar) - скалярні типи даних містять одне значення. До скалярних типів даних відносяться всі основні типи даних сервера Oracle, за винятком Boolean, які не можуть бути призначені для стовпців.
Оголошення змінних
CONSTANT – це змінна, значення якої не можна змінити. Ця змінна має бути ініціалізована. Ініціалізація в даному контексті означає, що значення змінної при створенні має бути визначеним, тобто значення цієї змінної необхідно присвоїти у розділі DECLARE . Ініціалізація змінної здійснюється за допомогою оператора присвоєння (:=) або ключового слова DEFAULT.
Datatype - визначає тип даних: скалярний, складовий, посилальний та LOB.
NOT NULL - обмеження, яке свідчить, що значення зміною може бути порожнім. Ця змінна повиннабути ініціалізована.
- Height - змінна чисельного типу з п'ятьма знаками до коми та двома після, зберігає значення висоти;
- Age – змінна чисельного типу без визначення розряду, що зберігає значення віку;
- Weight – константа чисельного типу. Значення ініціалізації 74.5;
- Name - змінна символьного типу, що зберігає значення імені. Максимальний розмір – десять символів;
- S_name CHAR (20) - змінна символьного типу, що зберігає значення прізвища. Максимальний розмір – двадцять символів;
- F_name - значення символьного типу. Не може бути порожнім, ініціалізованим значенням "Васильевич";
- Man - змінна логічного типу, ініціалізована в TRUE; значення TRUE або FALSE вказувати без лапок. Змінна типу Boolean може приймати лише три типи значень:
- TRUE;
- FALSE;
- NULL.
Оголошення змінних з атрибутом %TYPE
t_city - змінна типу city. Змінна символьного типу зберігає значення - "Маріуполь";
pr_key - зберігає значення стовпця таблиці about.pr_key.
Область видимості змінної
Область видимості змінної - це область, де вона визначена. Найчастіше всі змінні мають єдину область видимості. Змінна може бути локальною, глобальною або одночасно і тією і іншою. Локальна змінна – це змінна, локальна для блоку, в якому вона оголошена. Глобальна змінна - це змінна, що діє для всіх вкладених блоків, які знаходяться всередині блоку, де вона оголошена. Якщо одному з рівнів вкладеності цю змінну перевизначити, вона стане глобальної всім нижчих рівнів. Блоку, що стоїть одному рівні вкладеності з іншим, не можна посилатися назмінну, оголошену у цьому блоці.
Звернення до елементів Oracle Forms в операторах PL/SQL
Для того щоб звертатися до елементів, блоків, вікон та параметрів, потрібно перед назвою об'єкта поставити двокрапку. Нижче наведено основні приклади звернення до об'єктів Oracle Forms:
- :parameter.param_name – звернення до параметра. Слово параметр обов'язкове.
- :block_name.item_name – звернення до елемента блоку. Block_name - це ідентифікатор блоку даних, якому належить елемент, до якого ми звертаємось. Якщо у формі елемент один, то назву блоку можна буде опустити, інакше ви отримаєте помилку - "Неправильна змінна прив'язка".
- :block - звернення до блоку В цьому випадку жодних допоміжних префіксів не потрібно.
- :column_name – звернення до елемента. Якщо елемент у формі один, до нього можна звертатись без вказівки імені блоку.
- :system.variable_name - звернення до системної змінної Слово SYSTEM є обов'язковим.
- :global.global_name – звернення до глобальної змінної. Слово Global є обов'язковим.
Непряме звернення до елементів
У Oracle Forms існує два види непрямого звернення до елементів:
- Процедура COPY.
- Функція NAME_IN.
Процедура COPY
COPY - копіює вказане значення у вказаний елемент. Нижче розглянуто два види звернення до елемента.
: about.age:=20 - це пряме звернення, елементу age присвоюється значення 20.
COPY(20, 'about.age') - непряме звернення, елемент age міститься значення 20.
Функція NAME_IN
NAME_IN - повертає вміст елемента чи змінної. Ця функція може бути вкладена інші функції. Нижче наведено приклади звернення до елементів зза допомогою функції NAME_IN :
Непряме звернення часто використовується у програмних модулях та бібліотеках, де пряме звернення до елементів небажане чи неприпустиме.
Коментарі
- однорядкові;
- багаторядкові.