Likley, вы получаете эту ошибку
db2 "values '£101' * 1"
1
------------------------------------------
SQL0420N Invalid character found in a character string argument of the
function "DECFLOAT". SQLSTATE=22018
, которая появляется при обработке строки как числа, но строка не может быть преобразована в число (в данном случае DECFLOAT)
Вам нужно найти значения, которые нельзя преобразовать в число. Такая функция может использоваться для поиска таких значений
CREATE OR REPLACE FUNCTION DB_IS_DECFLOAT(i VARCHAR(64)) RETURNS INTEGER
CONTAINS SQL ALLOW PARALLEL
NO EXTERNAL ACTION
DETERMINISTIC
BEGIN
DECLARE NOT_VALID CONDITION FOR SQLSTATE '22018';
DECLARE EXIT HANDLER FOR NOT_VALID RETURN 0;
RETURN CASE WHEN CAST(i AS DECFLOAT) IS NOT NULL THEN 1 END;
END
например,
SELECT v
FROM TABLE(VALUES ('£123'),(' +123.45 ')) as t(V)
WHERE DB_IS_DECFLOAT(v) = 0
, которые возвращали бы
V
----
£123