НОУ ІНТУІТ, Лекція, 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 :

Непряме звернення часто використовується у програмних модулях та бібліотеках, де пряме звернення до елементів небажане чи неприпустиме.

Коментарі
  • однорядкові;
  • багаторядкові.