Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/12/2013, 10:03
carrillo1802_
 
Fecha de Ingreso: noviembre-2011
Ubicación: lima
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Error ora-00905

codigo sql
------------
Código SQL:
Ver original
  1. SET @HORA_INI = (SELECT CAST((CASE  WHEN LEFT(HORA_INICIO,1) = '+' THEN
  2.                                                 DATEADD(MINUTE,DATEPART (MINUTE,CONVERT ( TIME, SUBSTRING(HORA_INICIO,2,5))),
  3.                                                 CASE TIPO WHEN 2 THEN @RANGO2  
  4.                                                 WHEN 1 THEN @RANGO1
  5.                                                 ELSE
  6.                                                 @RANGO1 END)
  7.                                                
  8.                                                 ELSE
  9.                                                 CASE  WHEN @RANGO1 < = CAST( CASE WHEN  HORA_QUIEBRE > HORA_INICIO THEN
  10.                                                 DATEADD(DAY,1,@FECHA)
  11.                                                 ELSE
  12.                                                 @FECHA END AS DATETIME)+CAST(HORA_INICIO AS DATETIME) THEN
  13.                                                
  14.                                                 CAST(CASE WHEN HORA_QUIEBRE  > HORA_INICIO THEN
  15.                                                 DATEADD(DAY,1,@FECHA)
  16.                                                 ELSE
  17.                                                 @FECHA END  AS DATETIME)+CAST(HORA_INICIO AS DATETIME)
  18.                                                
  19.                                                 ELSE
  20.                                                 CASE WHEN TIPO = 2 THEN  @RANGO1
  21.                                                
  22.                                                 WHEN TIPO = 1 THEN  CAST(CASE WHEN HORA_QUIEBRE  > HORA_INICIO THEN
  23.                                                 DATEADD(DAY,1,@FECHA)
  24.                                                 ELSE
  25.                                                 @FECHA END  AS DATETIME)+CAST(HORA_INICIO AS DATETIME)
  26.                                                
  27.                                                 ELSE @RANGO1  
  28.                                                
  29.                                                 END  
  30.                                                                             END
  31.                                                                 END)AS DATETIME)                                                                                   
  32.                                                      FROM @vTABLA_ACTIVIDADESHORARIO WHERE ID = @J
  33.                                                      )





codigo ORALCE
Código SQL:
Ver original
  1. -----------------------------------*---
  2.  
  3.              
  4.               SELECT(CASE WHEN OHORA_INICIO = '+' THEN
  5.                           (SELECT SUBSTR(TO_CHAR(A.HORA_INICIO),4,2)+1
  6.                                   FROM TMP_vTABLA_ACTIVIDADESHORARIO A
  7.                                   WHERE A.ID_TABLA=pIDTABLA AND
  8.                                    ROWNUM=1),
  9.                    CASE D.TIPO  WHEN 2 THEN RANGO2 WHEN 1 THEN RANGO1
  10.                  
  11.                   ELSE RANGO1 END
  12.                    
  13.                   ELSE
  14.                    CASE WHEN RANGO1 <=(CASE WHEN HORA_QUIEBRE > HORA_INICIO THEN
  15.                                           (SELECT TO_DATE(pFECHA,'DD/MM/YYYY')+1 FROM DUAL)
  16.                                          
  17.                                           ELSE pFECHA END)+(HORA_INICIO)THEN
  18.                                          
  19.                                           (CASE WHEN HORA_QUIEBRE  > HORA_INICIO THEN
  20.                                             (SELECT TO_DATE(pFECHA,'DD/MM/YYYY')+1 FROM DUAL)
  21.                                            ELSE
  22.                                             pFECHA END) +  (HORA_INICIO)
  23.                                             ELSE
  24.                                              
  25.                                             CASE WHEN TIPO =2 THEN RANGO1
  26.                                                 WHEN TIPO=1 THEN (CASE WHEN HORA_QUIEBRE  > HORA_INICIO THEN
  27.                                                                 (SELECT TO_DATE(pFECHA,'DD/MM/YYYY')+1 FROM DUAL)
  28.                                                                  ELSE
  29.                                                                   pFECHA END) +  (HORA_INICIO)
  30.                                                                  ELSE
  31.                                                                    RANGO1
  32.                                                                    END
  33.                                           END
  34.                                          
  35.                                           END)INTO OpFECHA
  36.                                            FROM TMP_vTABLA_ACTIVIDADESHORARIO D WHERE D.ID=J AND D.ID_TABLA=PIDTABLA;

estoy pasando un procedimiento q esta en sql a oracle pero tengo un erro no se en que estoy fallando o si lo q estoy haciendo noe s la forma correcta saludos cordiales

Última edición por gnzsoloyo; 12/12/2013 a las 10:38