No me reemplaza la cadena que quiero, porque?
Acaso no estoy en una posicion del arreglo
Abierta a cualquier sugerencia
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION reemplazar()
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[]:= '{}';
campo VARCHAR[]:= '{}';
aux VARCHAR[]:= '{ERROR:tiene q tener toda la oracion}';
BEGIN
FOR var IN SELECT idtarea, tarea FROM prueba --where idtarea='97111'or idtarea='97278'
LIMIT 5
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];
IF SUBSTRING(palabra FROM 1)='Nc'
THEN perform REPLACE(palabra_dentro,'Nc','no conformidades');--then perform regexp_replace(palabra,'Nc','no conformidades','');
END IF;
aux[i]:=palabra;
END loop;
--update prueba set tarea=aux where idtarea=var.idtarea ;
fila.idtarea:= var.idtarea;
fila.tarea := aux;
RETURN NEXT fila;
END loop;
RETURN;
END;
$BODY$
LANGUAGE plpgsql