TENGO ESTA FUNCION LO QUE QUIERO LOGRAR CON ELLA ES DESPLAZARME DENTRO DE UN ARREGLO PARA COMPARAR LAS PALABRAS PARA CAMBIARLAS Y NO ME COGE EL CONCATENAR, ME DEVUELVE LA VARIABLE NADA MAS ASI SIN LAS PALABRAS DEL ARREGLO
Q HACER????
Código SQL:
Ver originalCREATE 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