首页 > 解决方案 > Teradata 到 Oracle Query eaxdata 转换

问题描述

我需要帮助将 Taradata 中的以下 SQL 查询转换为 Oracle exadata。不确定如何转换日期,我更改了 CAST 日期函数 To_Date 但出现了一些错误。

SELECT DISTINCT 
        pat.pat_id,
        pat.pat_mrn_id AS patientmrn,
        pat.pat_name   AS patientname,
        adt_pat_class_c,
        pat.death_date AS deathdate,
        cast(patenc.hosp_admsn_time AS DATE format 'mm/dd/yyyy') AS          
        admitdate,
        cast(patenc.hosp_disch_time AS DATE format 'mm/dd/yyyy') AS 
        dischargedate,
        extract(year FROM acct.adm_date_time)-extract(year FROM 
        pat.birth_date) - CASE WHEN acct.adm_date_time (format 
        'MMDD')CHAR(4)) 
        <pat.birth_date (format 'MMDD') (CHAR(4)) THEN 1 ELSE 0               
        END AS patage,
            adt_billing_type_c,
            adt_patient_stat_c,
            hosp_admsn_type_c,
            acct_basecls_ha_c,
            ordproc.order_proc_id AS order_id,
            ordproc.ordering_date
FROM  patient pat
inner join pat_enc_hsp patenc ON pat.pat_id = patenc.pat_id
inner join hsp_account acct ON acct.prim_enc_csn_id = patenc.pat_enc_csn_id
inner join order_proc ordproc ON acct.prim_enc_csn_id ON 
ordproc.pat_enc_csn_id
inner join clarity_ser ser ON ser.prov_id = ordproc.authrzing_prov_id
inner join identity_ser_id idser ON ser.prov_id=idser.prov_id 
inner join clarity_loc loc ON loc.loc_id = acct.loc_id
inner join zc_loc_rpt_grp_7 grp7 ON loc.rpt_grp_seven = grp7.rpt_grp_seven
WHERE grp7.name = 'AB'
AND cast(patenc.hosp_disch_time AS DATE format 'mm/dd/yyyy') >= '01/01/2019'
AND admit_conf_stat_c IN (1,4)
AND description LIKE '%CULTURE%'
AND ordproc.lab_status_c = 3
AND adt_pat_class_c IN ('1204','12113')
AND result_time > patenc.hosp_disch_time;

我更改了查询的顶部(带有日期的部分)-

select distinct
   pat.pat_id,
   pat.PAT_MRN_ID as PatientMRN,
   pat.PAT_NAME as PatientName,
   ADT_PAT_CLASS_C,
   pat.DEATH_DATE as DeathDate,
   TO_DATE(patenc.HOSP_ADMSN_TIME, 'mm/dd/yyyy') as AdmitDate,
   TO_DATE(patenc.HOSP_DISCH_TIME, 'mm/dd/yyyy') as DischargeDate----

我收到以下错误 - ORA-12801:在并行查询服务器 P02G 中发出错误信号,实例 nzcladb01xm.nndc.kp.org:CDB001N41 (1) ORA-01843:不是有效的月份 12801。00000 -“在并行查询服务器中发出错误信号%s" *原因:并行查询服务器达到异常条件。*措施:检查以下错误消息的原因,并查阅您的错误手册以采取适当的措施。*注释:可以使用事件 10397 关闭此错误,在这种情况下,将显示服务器的实际错误。

标签: oracleteradata

解决方案


推荐阅读