Инициализация внутри определения функции парараметра с типом IN
Часто вижу в примерах присвоение параметру типом IN:
Create or replace function atr (sode in number, code in number :=1000) return varchar2
Зачем нужно присваивать заранее известное значение в функциях?
Ниже идёт оператор ветвления:
If code in (1000,2000)
Соответвенно, зачем проверять известное присвоенное значение на соответствие?
Ответы (1 шт):
Значение по-умолчанию в функции используется:
Для написания более лаконичного кода. Если функция 100 раз вызывается так:
atr (1)и, например, есть только один специальный случай с отличаюшимся значением:
atr (1, code=>3000)Для "безболезненного" изменения/расширения функции. Например, добавив новый параметр
code in number :=1000, существуюший код в местах вызова функции останется без изменений. Без значения по-умолчанию для нового параметра, надо будет добавить его всюду, где функция вызывaется (десятки, а то и сотни изменений).create or replace function atr (sode in number) return varchar2 is begin return 'старое значение для '||sode; end; /Так было, а через пару лет решили изменить, добавив новый параметр:
create or replace function atr (sode in number, code in number:=1000) return varchar2 is begin return case when code != 1000 then 'значение для '||sode||' с учетом code '||code else 'старое значение для '||sode end; end; / select atr (99) result from dual / RESULT -------------------------------- старое значение для 99