В приведенном ниже примере значение tss должно совпадать с проверкой, учитывая, что аргумент функции равен 'WW123 (TestTest 20) ®TEST50®®40®France ™ WW123 (TestTest 20) ®Test50®®40®Fra', но что-то идет неправильная проверка становится "WW123 (TestTest 20) (обратите внимание на двойные кавычки в начале).
У кого-нибудь есть идеи, где проблема? Это ошибка в PostgreSQL 9.6?
CREATE OR REPLACE FUNCTION audit.test_function (
a_test text
)
RETURNS text AS
$body$
DECLARE
v_combinations text[];
v_combination text;
v_combination_elements text [ ];
tss text;
check text;
BEGIN
v_combinations = string_to_array(a_test,'™');
FOREACH v_combination in array v_combinations
LOOP
v_combination_elements = string_to_array(v_combination,'®');
FOR i in 1..array_length(v_combination_elements,1)-2
loop
tss = 'WW123 (TestTest 20)';
check = v_combination_elements[i];
if tss = v_combination_elements[i]
then
return 'Yes';
else
return 'No';
end if;
end loop;
END LOOP;
RETURN TSS;
END;