SQL Server - PROBLEMA CON QUERYS EN SQL SERVER Y ORACLE

 
Vista:

PROBLEMA CON QUERYS EN SQL SERVER Y ORACLE

Publicado por ALEJANDRO (4 intervenciones) el 03/04/2008 15:47:23
HOLA. TENGO UN PROBLEMA CON RESTA DE FECHAS EN UNA BASE ORACLE 9 CON SQL SERVER (Trabajo los reportes con SQL Server 2005 (con el visual Studio) y la base de datos se encuentra en un servidor en ORACLE 9. Recientemente instalé en mi pc el driver y me conecto a traves del driver OLE DB (Microsoft OLE DB Provider for Oracle). Antes, la base estaba en Sybase, y me conectaba a traves del driver ODBC instalado en mi pc. Este cambio fue reciente y no dieron tiempo a que modifique los querys, por lo que estoy corriendo contra el tiempo)
NO ME RECONOCE LA FUNCION DATEADD NI DATEDIFF. NECESITO CALCULAR LA DIFERENCIA ENTRE UNA VARIABLE QUE TRAE UNA FECHA Y HORA Y UNA FECHA Y HORA FIJADAS Y EL VALOR TRAERLO EN MINUTOS. LA ACTUAL QUERY CORRIA EN UNA BASE SYBASE A LA PERFECCION, PERO AL MIGRAR LA BASE A ORACLE YA NO ME LA RECONOCE. ESTO SOLO ES UNA PARTE DEL PROBLEMA. FUI COMENTANDO LAS LINEAS PARA VER SI EN ALGUN MOMENTO PODIA TRABAJAR Y SIEMPRE CHOCO CONTRA ALGUN INCONVENIENTE.

ESTE ES EL CODIGO:

SELECT tabla1.company,tabla1.incident_id,tabla1.description,
dateadd(hh,-2,tabla1.open_time) as newOpenTime,
dateadd(hh,-2,tabla1.close_time) as NewCloseTime,tabla1.open_time,tabla1.close_time,
tabla1.eds_sla_description,tabla1.opendw,tabla1.category,tabla1.subcategory,tabla1.product_type,
tabla1.problem_type,tabla1.severity,tabla1.opened_by,tabla3.assignment,tabla1.closed_by,
tabla1.eds_contact_loc1,tabla1.eds_contact_loc2,tabla2.country,
datediff(minute,"4000-01-01",ISNULL(tabla4.total,"4000-01-01")) as total_time,
CASE tabla1.first_call
WHEN "t" THEN "Tier I"
WHEN "f" THEN "Tier II"
END AS Tier,
CASE tabla1.category
WHEN "IMAC" THEN "1"
ELSE "0"
END AS Imac
FROM tabla1,tabla2,tabla3,tabla4
WHERE tabla1.incident_id = tabla3.incident_id
AND tabla1.location=tabla2.location
AND tabla1.incident_id(+) = tabla4.key_char
AND tabla4.type = "Incident"
AND tabla4.name = "Total Call Time"
AND ( upper(tabla1.company) = "ANDINA")
AND (to_date(tabla1.close_time,"YYYY/MM/DD") between "2008/03/03" and "2008/03/04")

El error que me arroja la nativa de ORACLE al correr este código es primero, asi como está,

ORA-00904: "DATEDIFF": invalid identifier

Luego, si comento esta linea y lo vuelvo a correr me arroja:

ORA-00904: "DATEADD": invalid identifier

Vuelvo a comentar las lineas con esa funcion y en la última linea (to_date...)me tira:

ORA-01861: literal does not match format string

La comento también y finalmente llego a:

ninguna fila seleccionada



Estoy en un quilombo. ¿ALGUIEN ME PODRÍA DAR UNA MANO CON ESTO?

MUCHAS GRACIAS A TODOS!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder