Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Локальные переменные. До этого локальные переменные в хранимой процедуре объявлялись как параметры, однако это не всегда удобно




 

До этого локальные переменные в хранимой процедуре объявлялись как параметры, однако это не всегда удобно. Можно объявить независимую от входных параметров локальную переменную при помощи оператора declare.

 

 

В вышеуказанном примере объявляются две переменные типа int(11)id и num, инициированные значением 0, и три текстовые переменные – name, hello, temp, объявленные без дополнительной инициализации. Инициировать локальные переменные можно и позже при помощи параметра set.

 

Оператор declare может появляться только внутри блока begin…end, область видимости объявленной переменной также ограничена этим блоком. Это означает, что в разных блоках begin…end могут быть объявлены переменные с одинаковыми именами, и действовать они будут только в рамках данного блока, не пересекаясь с переменными других блоков (см. пример ниже).

 

 

В вышеуказанном примере переменная var объявляется сначала со значением ‘abc’ во внешнем блоке begin…end, после чего во вложенном блоке объявляется вторая переменная var со значением ‘def’, которая экранирует первую переменную.

 

Однако переменная, объявленная во внешнем блоке begin…end, будет доступна во вложенном блоке, если не будет объявлена экранирующая ее переменная (см. пример ниже).

 

 

Обратное неверно: переменная, объявленная во вложенном блоке, недоступна во внешнем (см. пример ниже).

 

 

Как видно из вышеуказанного примера, вызов оператора select var во внешнем блоке begin…end приводит к ошибке, т. к. время жизни переменной var ограничено ее блоком, и после выхода из этого блока ее существование прекращается.

 

В заключение следует отметить, что не допускается и повторное объявление переменной в рамках одного блока begin…end (см. пример ниже). Это приводит к возникновению ошибки 1331: “Повторное объявление переменной”.

 

 

 




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 405; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.