Проверьте, является ли поле целочисленным в select
Я пытаюсь определить, является ли содержимое поля целочисленным значением.
В Firebird 2.5 есть "аналог", но в 2.1 он еще не был доступен.
2 ответа
Эта процедура, использующая обработку ошибок, возвращает значение поля как есть, если содержимое является целым числом, в противном случае возвращает 0
SET TERM ^ ;
create or alter procedure INT_CHECK (
IN_STR varchar(100))
returns (
ORESULT integer)
as
BEGIN
/* because WHEN works for the entire block use a separate BEGIN..END*/
begin -- START OF BLOCK
oresult = cast(:in_str as integer);
when any do
begin
oresult = 0;
end
end -- END OF BLOCK
suspend;
END^
SET TERM ; ^
Спасибо за ваш ответ.
А пока я пойду с:
substring(fieldname from 1 for 1) > '0' and
substring(fieldname from 1 for 1) < '9'