------------
Código SQL:
Ver original
SET @HORA_INI = (SELECT CAST((CASE WHEN LEFT(HORA_INICIO,1) = '+' THEN DATEADD(MINUTE,DATEPART (MINUTE,CONVERT ( TIME, SUBSTRING(HORA_INICIO,2,5))), CASE TIPO WHEN 2 THEN @RANGO2 WHEN 1 THEN @RANGO1 ELSE @RANGO1 END) ELSE CASE WHEN @RANGO1 < = CAST( CASE WHEN HORA_QUIEBRE > HORA_INICIO THEN DATEADD(DAY,1,@FECHA) ELSE @FECHA END AS DATETIME)+CAST(HORA_INICIO AS DATETIME) THEN CAST(CASE WHEN HORA_QUIEBRE > HORA_INICIO THEN DATEADD(DAY,1,@FECHA) ELSE @FECHA END AS DATETIME)+CAST(HORA_INICIO AS DATETIME) ELSE CASE WHEN TIPO = 2 THEN @RANGO1 WHEN TIPO = 1 THEN CAST(CASE WHEN HORA_QUIEBRE > HORA_INICIO THEN DATEADD(DAY,1,@FECHA) ELSE @FECHA END AS DATETIME)+CAST(HORA_INICIO AS DATETIME) ELSE @RANGO1 END END END)AS DATETIME) FROM @vTABLA_ACTIVIDADESHORARIO WHERE ID = @J )
codigo ORALCE
Código SQL:
Ver original
-----------------------------------*--- SELECT(CASE WHEN OHORA_INICIO = '+' THEN (SELECT SUBSTR(TO_CHAR(A.HORA_INICIO),4,2)+1 FROM TMP_vTABLA_ACTIVIDADESHORARIO A WHERE A.ID_TABLA=pIDTABLA AND ROWNUM=1), CASE D.TIPO WHEN 2 THEN RANGO2 WHEN 1 THEN RANGO1 ELSE RANGO1 END ELSE CASE WHEN RANGO1 <=(CASE WHEN HORA_QUIEBRE > HORA_INICIO THEN (SELECT TO_DATE(pFECHA,'DD/MM/YYYY')+1 FROM DUAL) ELSE pFECHA END)+(HORA_INICIO)THEN (CASE WHEN HORA_QUIEBRE > HORA_INICIO THEN (SELECT TO_DATE(pFECHA,'DD/MM/YYYY')+1 FROM DUAL) ELSE pFECHA END) + (HORA_INICIO) ELSE CASE WHEN TIPO =2 THEN RANGO1 WHEN TIPO=1 THEN (CASE WHEN HORA_QUIEBRE > HORA_INICIO THEN (SELECT TO_DATE(pFECHA,'DD/MM/YYYY')+1 FROM DUAL) ELSE pFECHA END) + (HORA_INICIO) ELSE RANGO1 END END END)INTO OpFECHA 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