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

Откуда:
Сообщений: 1256
девелопер пишет функцию, которая вставляет данные в таблицу. данные - перемнная, которая может быть какого угодно типа. вставлять же ему нужно в колонку number. он спрашивает как сделать так, что если инпут данные НЕнамбер - вставить 0, если же намбер - вставить его как есть.

я пока посоветовала написать экспешион, чтобы отлавливать ошибку, которую выкидывает to_number функция, если скормить ему не намбер, но мне интересно, есть ли какой-то другой способ проверить тип? что-то вроде:

if
v_value := varchar2
then exception
elseif
v_value := number
then
v_statement := 'INSERT bla-bla'

спасибо заранее.
1 дек 07, 01:02    [4990228]     Ответить | Цитировать Сообщить модератору
 Re: как узнать type?  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116174
Так как Вы - можно.
Можно еще использовать функцию TRANSLATE, чтобы отслеживать
числа - не числа

a la

decode(translate(num_char,'_0123456789','_'),null,num_char,0)

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

В общем если числа натуральные - можно translate,
ну а если что-то сложное, то пользуйтесь перехватом исключения по
to_number, потому что усложнение translate не очень смотрится ...
1 дек 07, 01:16    [4990256]     Ответить | Цитировать Сообщить модератору
 Re: как узнать type?  [new]
marguren
Member

Откуда:
Сообщений: 1256
спасибо, асилила!
1 дек 07, 02:21    [4990322]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить