Присваивание имени переменным и константам в PL/SQL: правила и исключения

Стас Белков

Стас Белков

Автор статьи. Известный специалист в мире IT. Консультант по продуктам и решениям Oracle. Практикующий программист и администратор баз данных. Подробнее.

Как правильно присвоить имя переменной или константе PL/SQLПрактически любой написанный вами блок PL/SQL будет определять данные и выполнять с ними те или иные операции. Программные данные представляют собой структуры, которые существуют только в рамках сеанса PL/SQL (а физически — находятся в рамках глобальной области программ (PGA, Program Global Area)) и не хранятся в базе данных. К программным данным относятся:

  • Переменные и константы — значения переменных могут изменяться во время выполнения программы, а значения констант статичны, то есть устанавливаются при объявлении и в дальнейшем не изменяются.
  • Скалярные и составные данные — скалярные данные состоят из одного значения (например, числа или строки), а составные данные состоят из нескольких значений (как, например, запись, коллекция или экземпляр объектного типа).
  • Контейнеры — могут содержать информацию, полученную из базы данных или иного источника.

Прежде чем работать с программными данными в коде PL/SQL, необходимо объявить структуры данных с указанием имен и типов данных.

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

 

Присваивание имен

Чтобы использовать переменную или константу, ее необходимо сначала объявить, присвоив ей имя и определив тип. Ниже перечислены основные правила выбора имен в PL/ SQL (они касаются также имен объектов базы данных, например таблиц или столбцов):

  • длина имени не должна превышать 30 символов;
  • имя должно начинаться с буквы и может состоять из букв, цифр, а также символов «$», «#» и «_»;
  • имена нечувствительны к регистру символов (если только они не заключены в двойные кавычки).

Согласно этим правилам допустимыми являются имена: 

l_total_count
first_12_years
total_#_of_trees
salary_in_$

Следующие два имени допустимы, однако они считаются в PL/SQL идентичными из-за нечувствительности языка к регистру символов:

 ExpertsExchange
ExpertSexChange

Следующие имена недопустимы по указанным причинам:

1st_account -- Начинается с цифры, а не буквы
favorite_ice_cream_flavors_that_dont_contain_nuts -- Слишком длинное имя
email_address@business_loc -- Имя содержит недопустимый символ @ 

Правила присвоения имен переменным и константам языка PL/SQL

У этих правил есть несколько исключений. Если имя в объявлении заключить в двойные кавычки, соблюдение этих правил не обязательно, кроме одного: длина имени не должна превышать 30 символов. Например, допустимыми являются следующие объявления:

DECLARE
"truly_lower_case" INTEGER;
" " DATE; -- Да, имя из пяти пробелов!
"123_go!" VARCHAR2(10);
BEGIN
"123_go!" := 'Steven';
END;

Когда эти имена указываются в исполняемом разделе, они всегда должны заключаться в двойные кавычки, иначе код не будет компилироваться.

Зачем нужны имена в двойных кавычках? В программах PL/SQL они не имеют особого смысла, но при создании объектов баз данных это позволяет сохранить в идентификаторах исходный регистр символов (например, если в программе создается таблица «docs», то она будет называться именно docs, а не DOCS). Однако в любых других случаях лучше избегать применения двойных кавычек в программах PL/SQL.

Другое исключение из правил имен относится к именам объектов Java, длина которых может достигать 4000 символов.

Выбирая имена для переменных и констант, придерживайтесь следующих рекомендаций.

  • Убедитесь в том, что имя соответствует назначению объекта и по нему можно быстро определить это назначение. Попытайтесь сформулировать, что представляет собой значение переменной; это поможет выбрать для нее более точное имя. Например, если переменная представляет «количество обращений по поводу еле теплого кофе», подходящим именем этой переменной может быть total_calls_on_cold_coffee, или tot_cold_calls, если вас раздражают имена переменных из пяти слов. Напротив, имена totcoffee или t_#_calls_lwcoff плохи — вряд ли читатель по имени переменной поймет, какие данные в ней хранятся.
  • Выработайте единые соглашения об именовании объектов и следуйте им. Соглашения обычно предполагают использование префиксов и суффиксов, описывающих тип и назначение переменных. Например, имена всех локальных переменных могут начинаться с суффикса «l_», а имена глобальных переменных, определяемых в пакетах, — с префиксом «g_». Записям назначается суффикс «_rt» и т. д. Полный набор правил назначения имен можно загрузить с примерами кода книги «Oracle PL/SQL Best Practices».

 

Вас заинтересует / Intresting for you:

Управление приложениями PL/SQL...
Управление приложениями PL/SQL... 3109 просмотров Stas Belkov Thu, 16 Jul 2020, 06:20:48
Встроенные методы коллекций PL...
Встроенные методы коллекций PL... 7003 просмотров sepia Tue, 29 Oct 2019, 09:54:01
Основы языка PL/SQL: использов...
Основы языка PL/SQL: использов... 3031 просмотров Ирина Светлова Tue, 06 Feb 2018, 14:04:03
Работа с числами в PL/SQL на п...
Работа с числами в PL/SQL на п... 16429 просмотров Antoniy Mon, 28 May 2018, 16:45:11
Войдите чтобы комментировать