Hola @jmgor , gracias por responder. Te cuento que al final encontre una solucion a mi problema. Paso a detallar :
1- Mi intencion era ejecutar una funcion almacenada en nuestro servidor de Postgresql, la misma empieza asi:
CREATE OR REPLACE FUNCTION public.funciondevuelvevarchar(campo2 character varying)
RETURNS character varying
LANGUAGE plpgsql
AS $function$
declare
letra char;
largo int;
begin
largo := length(campo2); <---- “aca daba error en knime”
for i in 1…largo
loop
letra := substring(campo2,i,1);
…
Dicha funcion la utlizaría para un DML en un nodo DB SQL Executor, porque no encontre otra manera, entonces la instruccion en dicho nodo seria así:
UPDATE public.tabla
SET campo1 = public.funcionDevuelveVarchar(campo2);
2- Por lo que noté, length() (que devuelve la longitud de un string), desde knime no funciona, vuelvo a aclarar que la funcion funciondevuelvevarchar() esta en el servidor postgres, no es una funcion creada en knime. y campo2 no es una variable de knime, es un campo de una tabla que paso como parametro.
El log de errores en knime, me aclaraba que no se podia asignar NULL a un limite de Loop, y veras que el limite de loop que utilizo es la variable largo que se le asigna un valor entero atraves de length(), pero ésta al no funcionar devuelve un NULL.
3- La solucion??? Fui al servidor postgres y edite la funcion funcionDevuelveVarchar() de la siguiente manera:
En la linea donde decía largo := length(campo2) la modifique a largo := 200;
O sea, a la variable largo le asigne un valor entero fijo… y funcionó para KNIME !
Conclusion… ninguna, no entendi porque la funcion length() de postgres, no se puede ejecutar desde knime, cuando otras funciones como substring() si funcionan…
Pero bueno, finalmente pude solucionarlo
Si a alguien le pasó algo similar, y encontró otra solucion, o la correcta, será bienvenido su aporte.
Gracias a Todos.
Saludos