Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/05/2012, 16:04
Avatar de scorpion191191
scorpion191191
 
Fecha de Ingreso: mayo-2012
Ubicación: Costa R
Mensajes: 4
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Stored Procedure en Sql a Postgresql Traducirlo

Cita:
Iniciado por drako_darpan Ver Mensaje
Modifique tu query y funciona asi:

Código PostgreSQL:
Ver original
  1. CREATE OR REPLACE FUNCTION procesa_trama_v2(hilera_entrada character varying)
  2.   RETURNS INT4 AS
  3. $BODY$
  4.     DECLARE
  5.         nLongitud INT4;
  6.  
  7.         BEGIN
  8.         nLongitud := 0;
  9.  
  10.         nLongitud = length(Hilera_Entrada);
  11.         RETURN nLongitud;
  12.         END;
  13. $BODY$
  14.   LANGUAGE 'plpgsql' VOLATILE;
  15.  
  16. --Cualquiera de las dos funciones sirve.
  17. select procesa_trama_v2 ('hola soy una cadena');
  18. select * FROM procesa_trama_v2 ('hola soy una cadena');


Gracias Drako, me puse a investigar un poco y logré algo como esto:

Código:
CREATE OR REPLACE FUNCTION procesa_trama_ve(IN hilera_entrada text, IN hilera_salida text, IN longitud_hilera_salida integer)
  RETURNS TABLE(hilera_salida_s text, longitud_hilera_salida_s integer) AS
$BODY$
BEGIN
hilera_salida:= hilera_entrada;
    longitud_hilera_salida:= LENGTH(hilera_entrada);
    -- @todo hide password
    RETURN QUERY
        SELECT hilera_salida, longitud_hilera_salida;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE STRICT SECURITY DEFINER
  COST 100
  ROWS 1000;
ALTER FUNCTION procesa_trama_ve(text, text, integer)
  OWNER TO postgres;
Todo bien con la funcion, pero lo que quiero es que la salida de la consulta me la muestre en columna independientes, en ves de eso si corro la función me muestra algo como esto:

Código:
Select procesa_trama_v3('Hola','',0)
(Hola,4)
Y no me sirve, ya que hice las pruebas con un textbox en vvb.net 2005 y el dataset solo me devuelve una columna, esta: "(Hola,4)"

Es posible generar el resultado de la función en columnas independientes, o hay que realizar algún tipo de conversión con un programa adicional?

Gracias por leer¡
¡Saludos!