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

Откуда:
Сообщений: 3
Здравствуйте.

Как проверить строку на возможность cast'а к числу, как условие, что-то вроде:
IF CASTABLE(myvarchar2) AS NUMBER THEN ...

Смысл задачи - вносить илине вносить данные в таблицу (в поле NUMBER), в зависимости от того, может ли быть myvarchar2 сконвертировано в число. Возможно проблема решается как-то проще?

Заранее спасибо.
4 окт 07, 11:21    [4753698]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить строку на возможность cast'а к числу  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Внести и обработать ошибку
4 окт 07, 11:22    [4753708]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить строку на возможность cast'а к числу  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116202
Сформулировано замысловато, но все же почитайте
SQL/PL SQL Топ N10
4 окт 07, 11:24    [4753719]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить строку на возможность cast'а к числу  [new]
deafsheep
Member

Откуда:
Сообщений: 3
О, прошу прощения, это 10-й вопрос... Первый пост с вопросом и тот из FAQ'а...
4 окт 07, 11:36    [4753804]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить строку на возможность cast'а к числу  [new]
Бабичев Сергей
Member

Откуда:
Сообщений: 2498
dmidek
Сформулировано замысловато, но все же почитайте
SQL/PL SQL Топ N10
+ как всегда сложности с "интересными" формами представления числа: экспоненциальная форма, отрицательные числа, дробные. Все они могут быть преобразованы из строки в число, но не все они пройдут проверку на предмет наличия в себе только цифровых символов.

Так что если ставить вопрос ребром, именно так, как его поставил автор, то вариант с попыткой преобразования и обработкой исключения - более подходящий и менее сложный в реализации.
4 окт 07, 11:38    [4753815]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить строку на возможность cast'а к числу  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116202
Бабичев Сергей
dmidek
Сформулировано замысловато, но все же почитайте
SQL/PL SQL Топ N10
+ как всегда сложности с "интересными" формами представления числа: экспоненциальная форма, отрицательные числа, дробные. Все они могут быть преобразованы из строки в число, но не все они пройдут проверку на предмет наличия в себе только цифровых символов.

Так что если ставить вопрос ребром, именно так, как его поставил автор, то вариант с попыткой преобразования и обработкой исключения - более подходящий и менее сложный в реализации.


Сергей, я согласен, но противоречия нет. В приведенных многочисленных ссылках
есть разумеется и варианты с функцией

Например
4 окт 07, 11:44    [4753861]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить строку на возможность cast'а к числу  [new]
deafsheep
Member

Откуда:
Сообщений: 3
Большое спасибо, все нашел.
4 окт 07, 11:51    [4753913]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить строку на возможность cast'а к числу  [new]
Timm
Member

Откуда: Moscow, Ё-burg
Сообщений: 3696
Полуофф. Не знаю, смеяццо или плакать...
функция:
   BEGIN
      SELECT CAST(REPLACE(numberstr, ',', '.') AS NUMBER) INTO ret FROM DUAL;
   EXCEPTION
      WHEN OTHERS
      THEN
         ret := NULL;
   END;
   RETURN ret;
как ее использовали:
call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute 11658700    445.35     427.80          0          0          0           0
Fetch   11658700    141.58     128.69          3   34976100          0    11615708
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total   23317401    586.93     556.49          3   34976100          0    11615708
4 окт 07, 12:17    [4754138]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить строку на возможность cast'а к числу  [new]
Бабичев Сергей
Member

Откуда:
Сообщений: 2498
dmidek
Сергей, я согласен, но противоречия нет. В приведенных многочисленных ссылках
есть разумеется и варианты с функцией

Например
А-га, теперь вижу. :)
4 окт 07, 12:54    [4754444]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить