PostgreSQL string_to_array двойные кавычки, вызывающие проблему - PullRequest
0 голосов
/ 04 ноября 2018

В приведенном ниже примере значение 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;    
...