codigo sql
------------
Código SQL:
Ver originalSET @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