Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Как проинициализировать переменные пакета ?  [new]
razliv
Member

Откуда:
Сообщений: 702
Есть такая ситуация - есть пакет и имеет переменные. Переменные надо инициализировать примерно так.
  
package body a is
begin


procedure x is
  begin
     if b.get_y = 'Y' then
            var := 'a';
      else
             var := 'v';
      end if;
     ... code ...
  end;
  
 procedure w is
  begin
      if b.get_y = 'Y' then
            var := 'a';
      else
             var := 'v';
      end if;
     ... code ...
  end;

end;
Есть ли способ как нибудь сделать это поэлегантнее ? Чтобы не было повторения кода ?
11 сен 09, 13:40    [7647431]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
Elic
Member

Откуда: 1984. Следующие на оккупацию финно-угром
Сообщений: 23431
razliv
Чтобы не было повторения кода ?
Как и в любом языке - оформить процедурой.
11 сен 09, 13:42    [7647444]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
razliv
Member

Откуда:
Сообщений: 702
Elic

Угу, такая мысль была, но .. Боюсь что кто-нибудь допишет свою процедуру которая использует переменную и не вставит в свою процедуру процедуру инициализации :( ?
11 сен 09, 13:47    [7647480]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
фычун
Guest
Используй раздел инициализации пакета.
11 сен 09, 13:57    [7647549]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5449
Не допускайте мартышек к исходному коду.
11 сен 09, 13:58    [7647560]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
Elic
Member

Откуда: 1984. Следующие на оккупацию финно-угром
Сообщений: 23431
razliv,
Пакет может иметь инициализационную часть.
RTFM The initialization part of a package (FAQ)
11 сен 09, 13:59    [7647578]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3742
Elic
razliv,
Пакет может иметь инициализационную часть.
RTFM The initialization part of a package (FAQ)


Но предварительно - оформить в виде процедуры :) , иначе могут быть нюансы.
11 сен 09, 14:01    [7647598]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
GL
Member

Откуда: Харьков
Сообщений: 1503
господа, если вы не заметили, у него ВЕСЬ пакет - это инициализационная часть...
11 сен 09, 14:02    [7647607]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
razliv
Member

Откуда:
Сообщений: 702
Фычун, Элик

Спасибо, к стыду своему даже и не знал, что есть у пакетов такая фишка.

mcureenab

Ну люди не роботы, бывает все ошибаються.
11 сен 09, 14:09    [7647660]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5449
GL,

вопрос только в том, можно ли считать пакетом синтаксически неправильное предложение.
11 сен 09, 14:10    [7647670]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3742
razliv

Спасибо, к стыду своему даже и не знал, что есть у пакетов такая фишка.


перед использованием прочитай например это
11 сен 09, 14:23    [7647792]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5449
Сначала надо читать PL/SQL Users Guide and Reference от корки до корки. Тогда и стыдно не будет.
11 сен 09, 14:35    [7647892]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
razliv
Member

Откуда:
Сообщений: 702
Олег Афанасьев
Спасибо, буду вкуривать.

mcureenab
Логично. А вы сами читали от корки до корки ? :)
11 сен 09, 14:38    [7647935]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5449
razliv
mcureenab
Логично. А вы сами читали от корки до корки ? :)


Да. Очень доволен остался. И всем, кто пишет на PL/SQL рекомендую. Не такая толстая книга, и "ненужных" частей в ней практически нет, всё что написано, довольно широко применяется на практике и сильно облегчает жизнь.

Книги про PL/SQL пакеты и SQL для начала можно просто полистать, чтобы быстро охватить широкое поле сведений, а уж потом по мере надобности углубляться в то, что вам нужно.
11 сен 09, 14:55    [7648088]     Ответить | Цитировать Сообщить модератору
 Re: Как проинициализировать переменные пакета ?  [new]
razliv
Member

Откуда:
Сообщений: 702
Угу, понял. Я так по другим просто туториалам учился :)
11 сен 09, 14:59    [7648120]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить