Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/09/2014, 12:16
norcan2606
 
Fecha de Ingreso: septiembre-2014
Ubicación: San lorenzo
Mensajes: 1
Antigüedad: 10 años, 2 meses
Puntos: 0
procedimiento almacenado con tablas temporales

buenas esperon puedan ayudarme ya que soy nueva con tablas temporales, hice un procedimiento almacenado con tablas temporales, que al ejecutar mi procedimiento me sale el error de que la tabla temporal no existe: Invalid object name '#beneficios'.
mi procedimiento almacenado es buscar el ultimo beneficio que una persona ( en este caso grupo) se le haya otorgado y esos guardar en la tabla temporal para luego seleccion de ahi el resultado.
les dejo mi procedimiento para que puedan guiarme y decirme en que estoy fallando

Código SQL:
Ver original
  1. DECLARE
  2. @nro_cedide VARCHAR(20),@max_comprobante INT;
  3.  
  4. BEGIN
  5.     --SET NOCOUNT ON;
  6.     DECLARE crsr_cedula cursor FOR
  7.         SELECT so.nro_cedide
  8.             FROM cij.JM_SOLICITUD so, cij.JM_CONFORMACION fo, cij.JM_INFORME_FINAL i, cij.jm_resultado re, cij.JM_BENEFICIO be
  9.         WHERE so.id_solicitud= fo.id_solicitud
  10.         AND fo.id_conformacion= i.id_conformacion
  11.         AND i.id_informe= re.id_informe
  12.         AND re.id_beneficio= be.id_beneficio
  13.         AND i.estado='FIN'
  14.         AND re.id_beneficio IN (4,5,6,8,9)
  15.         IF @@error != 0
  16.         BEGIN
  17.             raiserror 99999 'ERROR las cedulas de las personas con informes finalizados'
  18.         END;
  19.        
  20.         --ABRIMOS CURSOR
  21.         OPEN crsr_cedula;
  22.         IF @@error != 0
  23.         BEGIN
  24.             raiserror 99999 'ERROR al abrir el cursor pp'
  25.         END
  26.  
  27.         --RECORREMOS EL CURSOR
  28.         fetch NEXT FROM crsr_cedula INTO @nro_cedide
  29.         IF @@fetch_status = -1
  30.         BEGIN
  31.             raiserror 99999 ' Error al recorrer cursor[inicio]'
  32.         END;
  33.  
  34.         while @@fetch_status = 0
  35.         BEGIN
  36.             --recuperamos el ultimo comprobante afectado de la persona
  37.             SELECT @max_comprobante = MAX(comprobante_pago)
  38.                 FROM cij.BENEFICIARIOS x, cij.BENEFICIARIOS_GRUPOS y, cij.COMPROBANTES_PAGOS z
  39.             WHERE x.beneficiario = y.beneficiario
  40.             AND y.beneficiario_grupo = z.beneficiario_grupo
  41.             AND z.indicador_estado = 'VAL'
  42.             AND x.cedula = @nro_cedide
  43.             IF @@error != 0
  44.             BEGIN
  45.                 raiserror 99999 'Error al recuperar el maximo comprobante de la persona'
  46.             END;
  47.            
  48.             IF @max_comprobante IS NOT NULL
  49.             BEGIN
  50.            
  51.                 CREATE TABLE #beneficios(cedula VARCHAR(20),nombre VARCHAR(70),fec_nac datetime,fec_ini datetime,fec_fin datetime,descripcion VARCHAR(70),resolucion VARCHAR(20))
  52.                 INSERT INTO #beneficios
  53.                 SELECT a.cedula, a.nombre_completo, a.fecha_nacimiento, d.fecha_inicio, d.fecha_fin, e.descripcion concepto_asignacion,d.numero_resolucion
  54.                     FROM cij.BENEFICIARIOS a, cij.BENEFICIARIOS_GRUPOS b, cij.COMPROBANTES_PAGOS c, cij.COMPROBANTES_PAGOS_DETALLE d, cij.CONCEPTOS_ASIGNACIONES e
  55.                 WHERE a.beneficiario = b.beneficiario
  56.                 AND b.beneficiario_grupo = c.beneficiario_grupo
  57.                 AND c.comprobante_pago = d.comprobante_pago
  58.                 AND d.concepto_asignacion = e.concepto_asignacion
  59.                 AND d.indicador_tipo = 'CRE'
  60.                 AND c.comprobante_pago = @max_comprobante
  61.                 IF @@error != 0
  62.                 BEGIN
  63.                     raiserror 99999 'Error al insertar en la tabla temporal'
  64.                 END;
  65.                                
  66.             END;
  67.            
  68.             fetch NEXT FROM crsr_cedula INTO @nro_cedide         
  69.         END
  70.        
  71.         --CERRAMOS EL CURSOR
  72.         close crsr_cedula
  73.         deallocate crsr_cedula
  74.        
  75.     SELECT cedula,nombre,fec_nac,fec_ini,fec_fin,descripcion,resolucion FROM #beneficios;
  76. END

gracias

Última edición por gnzsoloyo; 25/09/2014 a las 08:41