Как передавать данные процедуре oracle
у меня есть процедура, которая принимает на вход параметр типа number начало процедуры выглядит так - proc_data(id_row in number) .....
в соответствии с id_row у меня разная логика update-ов
я заметила, что если я вызываю процедуру, таким образом begin proc_data('5'); end;
то есть передаю строку, то oracle принимает это и обрабатывает данные/
так же я могу вызвать процедуру и таким образом, то есть явно передаю integer begin proc_data(5); end;
а вот если передаю не число begin proc_data('dsfsd'); end; То соответственно ошибка.
Получается oracle неважно передаю я строку или целое число, он потом сам преобразует значение к целому числу и если это у него получается, то он идет далее по процедуре. Или все же необходимо в точности передавать тот тип данных, который объявлен?
Это мой первый вопрос, если я что-то написала неправильно или непонятно, отпишитесь в комментариях, как мне улучшить вопрос
Ответы (1 шт):
Лучше передавать тот тип, который объявлен в процедуре. Если необходимо избежать ошибок преобразования, то можно использовать конструкцию вида TO_NUMBER('dsfsd' DEFAULT 0 ON CONVERSION ERROR)