sql002.javljaetsja_li_stroka_chislom
Содержание
SQL002. Является ли строка числом
Версии сервера
0.9 | 1.0 | 1.5.3 | 1.5.4 | 1.5.5 | 2.0 | 2.0.3 | 2.0.4 | 2.1 | 2.5 | 3.0 |
---|---|---|---|---|---|---|---|---|---|---|
- | - | - | - | - | - | - | - | - | - | - |
Описание
Данная хранимя процедура, проверяет, является ли строка, переданная в качестве параметра числом
Пример
CREATE PROCEDURE IS_NUMBER ( a_value VARCHAR(32) )RETURNS ( RESULT VARCHAR(10) )AS DECLARE variable i INTEGER; DECLARE variable j INTEGER; BEGIN RESULT = 'Фиг'; a_value = TRIM(a_value); IF (a_value IS NULL OR CHAR_LENGTH(a_value) = 0) THEN BEGIN suspend; exit; END i = 1; j = CHAR_LENGTH(a_value); while (i <= j) do BEGIN IF (SUBSTRING(a_value FROM i FOR 1) BETWEEN '0' AND '9' OR (i =1 AND SUBSTRING(a_value FROM 1 FOR 1) IN ('-', '+') AND CHAR_LENGTH(a_value) > 1 )) THEN RESULT = 'Это число'; ELSE BEGIN RESULT = 'Фиг'; Break; END i = i + 1; END suspend; END
См. также
Источник
2009-01-31irebird\doc\
sql002.javljaetsja_li_stroka_chislom.txt · Последнее изменение: 2009/01/31 16:28 — peaktop
Обсуждение
А так не проще (пример процедуры является ли целым числом. Но типом можно играть как угодно при приведении)
может и проще. зато первый вариант учит работать со строкой посимвольно. но чем больше вариантов тем лучше, теперь будет выбор
А можно и так: