Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/03/2013, 09:45
Avatar de David_Carrera
David_Carrera
 
Fecha de Ingreso: marzo-2013
Ubicación: Talcahuano
Mensajes: 6
Antigüedad: 11 años, 2 meses
Puntos: 0
Problemas para migrar procedimientos y funciones de POSTGRES a SQL SERVER 08

Hola que tal a todos, bueno formulo mi pregunta.

El tema es que tengo procedimientos y funciones en postgress(el cual nunca eh usado), y las necesito migrar a sql server 2008 el cual tampoco había usado para pl/sql, me ayudaria mucho si me pudieran cooperar con este asunto, desde ya gracias...

P.D: la version del postgress es 8.4.
Código SQL:
Ver original
  1. -- Function: tablastemporales.reporte_total(refcursor, character)
  2.  
  3. -- DROP FUNCTION tablastemporales.reporte_total(refcursor, character);
  4.  
  5. CREATE OR REPLACE FUNCTION tablastemporales.reporte_total(pref refcursor, pnumot CHARACTER)
  6.   RETURNS refcursor AS
  7. $BODY$BEGIN
  8.     OPEN PREF FOR
  9.         SELECT
  10.         ot.numot,
  11.         ot.descripcion,
  12.         ot.gastosgenerales,
  13.         ot.utilidad,
  14.         ot.totalhh AS inyeccionhh,
  15.         hh.gastadashh,
  16.         ot.totalhh - hh.gastadashh AS quedanhh,
  17.         ot.valorcompras AS inyeccioncompras,
  18.         compras.gastadascompras,
  19.         ot.valorcompras - compras.gastadascompras AS quedancompras,
  20.         ot.valormanoobra AS inyeccionvalormanoobra,
  21.         manoobra.gastadasvalormanoobra,
  22.         ot.valormanoobra - manoobra.gastadasvalormanoobra AS quedanvalormanoobra
  23.     FROM ot
  24.     LEFT JOIN  
  25.     (
  26.         SELECT round(COALESCE(SUM(horatrato+horanormal+horaextra),0)) AS gastadashh,numot
  27.         FROM public.detallehora
  28.         GROUP BY numot
  29.     ) AS hh
  30.     ON(
  31.         hh.numot=ot.numot
  32.       )
  33.     LEFT JOIN
  34.     (
  35.         SELECT round(COALESCE(SUM(precioventa*cantidad),0)) AS gastadascompras,oc.numot
  36.         FROM controlbodegacompras.detalleoc,controlbodegacompras.oc
  37.         WHERE detalleoc.idoc = oc.idoc AND estado_oc=1  AND sw_cargada_a_ot=1        
  38.         GROUP BY oc.numot
  39.     ) AS compras
  40.     ON(
  41.         compras.numot=ot.numot
  42.       ),
  43.     (
  44.         SELECT frmvalorizacionhh AS gastadasvalormanoobra
  45.         FROM presupuestos.frmvalorizacionhh(pnumot)        
  46.     ) AS manoobra    
  47.     WHERE ot.numot=pnumot;
  48.  
  49.     RETURN PREF;
  50. END;$BODY$
  51.   LANGUAGE 'plpgsql' VOLATILE
  52.   COST 100;
  53. ALTER FUNCTION tablastemporales.reporte_total(refcursor, CHARACTER) OWNER TO postgres;

Última edición por gnzsoloyo; 06/03/2013 a las 10:56 Razón: SQL Mal etiquetado.