Q HACER????
Código SQL:
Ver original
CREATE OR REPLACE FUNCTION otraprueba() RETURNS SETOF fila_procesada AS $BODY$ DECLARE fila fila_procesada; palabra VARCHAR; palabra_dentro VARCHAR; fin INTEGER; fin_dentro INTEGER; var record; longitud INTEGER; temporal VARCHAR; arreglo VARCHAR[]:= '{}'; tupla VARCHAR[]:= '{}'; aux VARCHAR[]:= '{noooooo}'; BEGIN FOR var IN SELECT idtarea, tarea FROM prueba loop temporal:= (SELECT regexp_replace(var.tarea, '[^a-zA-Z0-9ñÑáéíóúüÁÉÍÓÚ]+','/','g')); temporal:= (SELECT btrim(temporal, '0123456789./ ')); temporal:= (SELECT ltrim(temporal,'0123456789./ ')); temporal:= (SELECT UPPER(SUBSTRING(temporal,1,1)) || LOWER(SUBSTRING(temporal, 2))); arreglo := (SELECT regexp_split_to_array(temporal, '[^a-zA-Z0-9ñÑáéíóúüÁÉÍÓÚ]+')); fin:= (SELECT array_length(arreglo,1))::INTEGER; FOR i IN 1..fin loop palabra:= arreglo[i]; tupla:=(SELECT regexp_split_to_array(palabra, '[^a-zA-Z0-9ñÑáéíóúüÁÉÍÓÚ]+')); fin_dentro:=(SELECT array_length(tupla,1))::INTEGER; FOR j IN 1..fin_dentro loop palabra_dentro:=tupla[j]; IF palabra_dentro LIKE 'NC' --if similarity(palabra_dentro,'NC')=1 THEN SELECT REPLACE(palabra_dentro,'NC','no conformidades'); perform array_append(aux,palabra_dentro); ELSE perform array_append(aux,palabra_dentro); END IF; END loop; END loop; fila.idtarea:= var.idtarea; fila.tarea := aux; RETURN NEXT fila; END loop; RETURN; END; $BODY$ LANGUAGE plpgsql