Al cual se le ingresan 3 parametros: Hilera_Entrada, Hilera_Salida y Longitud_Hilera_Salida, los dos ultimus pueden venir vacios, y el procedimiento se encarga de contar la cantidad de caracteres de Hilera_Entrada y pasarlos A Hilera_Salida, este sp lo hice en Sqlserver 2005 y sin problemas =)
Se los muestro acá:
Código:
Create Procedure dbo.Procesa_Trama_v2 @Hilera_Entrada varchar(50), @Hilera_Salida varchar(50), @Longitud_Hilera_Salida int as set @Hilera_Salida= @Hilera_Entrada set @Longitud_Hilera_Salida= LEN(@Hilera_Salida) Select @Hilera_Salida as 'Hilera_Salida', @Longitud_Hilera_Salida as 'Longitud Hilera Salida'
Al momento de realizarlo en Postgresql me topo con que es una cosa totalmente diferente XD, y de mucho investigar se que se usan funciones en ves de sp, y a lo mucho que llegué fue a esto:
Código:
El cual me permite crearlo y todo, pero ni siquiera se la manera correcta de ejecutarlo, lo estaba ejecutando de la siguiente manera:CREATE OR REPLACE FUNCTION procesa_trama_v2(hilera_entrada character varying) RETURNS character varying AS $BODY$ BEGIN Select Hilera_Entrada, length(Hilera_Entrada); END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION procesa_trama_v2(character varying) OWNER TO postgres;
Código:
La cual me arroja el siguiente error:select procesa_trama_v2 ('hola soy una cadena');
Código:
ERROR: query has no destination for result data HINT: If you want to discard the results of a SELECT, use PERFORM instead. CONTEXT: PL/pgSQL function "procesa_trama_v2" line 3 at SQL statement
La verdad me estoy volviendo loco, por ello pido alguna orientación, sobre cual es mi fallo, ya sea en la manera de programar la función, traducir el procedimiento a postgresql o en la manera por la cual llamo a la función