SQL002. Является ли строка числом

Версии сервера

0.91.01.5.31.5.41.5.52.02.0.32.0.42.12.53.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\

Обсуждение