I have gone over forums with my current error, and please help me understand what I need to change.
I have job that currently works by looking up database IPs and table names to perform extraction on 76 servers. I have converted this code to a new job, which performs table joins, because each server has four tables that I need but two different schemas ( tricky part!). I have managed to create variables and use a get variables step to inject the schema in my query as shown below:
before:
Select pa."PATNO",pa."RECTYP",pa."FILLRM",pa."ISADATE", pa."ISDDATE",pa."UDSTAT", pa."DCSTAT",pa."IATME",
pa."ISDOB", pa."SEX",pa."AGE", pa."PTYPE",pa."FINCL",pa."HSSVC", pa."HSTNUM", pa."AINS1",ins."INSNME", pa."DASTA",
pa."DIAGN", pa."DIAG9",pa."PDCD",pa."ODC1", pa."ODC2",pa."ODC3", pa."ODC4",pa."PPDESC",pa."PPDTE",
pa."OPC1",pa."OPC2",pa."OPD1",pa."OPD2",pa."PPDSC",pa."PREVAD",pa."ACLVL", pa."AVGLOS", pa."ADTYP",
pa."ADSRC",pa."OBSFLG",pa."ADTBY",pa."BILAMT",pa."INSYN",pa."INSTYP",pa."ATTPHY",pa."VIP", pa."DRG",
rx."UDSCHDT",rx."UDSCHTM",rx."UDADMDT",rx."UDADMTM",rx."UDENTDT",rx."UDENTTM",rx."UDFILLSTS",rx."UDADMDOSE",
rx."UDNDC",fm."FXGENNAME",fm."FXCOMNM",fm."FXMNDN",fm."FXROUTE",rx."UDFREQ",fm."FXIUM",fm."FXICF",fm."FXPCF",
fm."FXCHG",fm."FXBULK",fm."FXCLS",fm."FXCPR",fm."FXMNE",fm."FXRND",fm."FXDOSE",fm."FXDIUM",fm."FXSTORD",
fm."FXCHFL",fm."FXEXTMP",fm."FXEXTDAYS",fm."FXBCF",fm."FXMNDF",rx."UDSET#",rx."UDMULTI",rx."UDCGRP",
rx."UDHOLDSTS",rx."UDADMUN"
from "HOSPF${facility_variable}"."PATIENTS" pa
left join "ORDERF${facility_variable}"."RXUDTRAN" rx
on pa."PATNO" = rx."UDPAT#"
left join "ORDERF${facility_variable}"."RXFORXP" fm
on rx."UDNDC" = fm."FXNDC"
left join "HOSPF${facility_variable}"."INSPLAN" ins
on pa."AINS1" = ins."INSCO"
where pa."ISADATE" >= '01/01/15'
and pa."ISADATE" <= '12/31/15'
after:
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Unexpected error
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException:
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - An error occurred executing SQL:
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - Select pa."PATNO",pa."RECTYP",pa."FILLRM",pa."ISADATE", pa."ISDDATE",pa."UDSTAT", pa."DCSTAT",pa."IATME",
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - pa."ISDOB", pa."SEX",pa."AGE", pa."PTYPE",pa."FINCL",pa."HSSVC", pa."HSTNUM", pa."AINS1",ins."INSNME", pa."DASTA",
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - pa."DIAGN", pa."DIAG9",pa."PDCD",pa."ODC1", pa."ODC2",pa."ODC3", pa."ODC4",pa."PPDESC",pa."PPDTE",
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - pa."OPC1",pa."OPC2",pa."OPD1",pa."OPD2",pa."PPDSC",pa."PREVAD",pa."ACLVL", pa."AVGLOS", pa."ADTYP",
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - pa."ADSRC",pa."OBSFLG",pa."ADTBY",pa."BILAMT",pa."INSYN",pa."INSTYP",pa."ATTPHY",pa."VIP", pa."DRG",
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - rx."UDSCHDT",rx."UDSCHTM",rx."UDADMDT",rx."UDADMTM",rx."UDENTDT",rx."UDENTTM",rx."UDFILLSTS",rx."UDADMDOSE",
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - rx."UDNDC",fm."FXGENNAME",fm."FXCOMNM",fm."FXMNDN",fm."FXROUTE",rx."UDFREQ",fm."FXIUM",fm."FXICF",fm."FXPCF",
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - fm."FXCHG",fm."FXBULK",fm."FXCLS",fm."FXCPR",fm."FXMNE",fm."FXRND",fm."FXDOSE",fm."FXDIUM",fm."FXSTORD",
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - fm."FXCHFL",fm."FXEXTMP",fm."FXEXTDAYS",fm."FXBCF",fm."FXMNDF",rx."UDSET#",rx."UDMULTI",rx."UDCGRP",
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - rx."UDHOLDSTS",rx."UDADMUN"
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - from "HOSPF029"."PATIENTS" pa
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - left join "ORDERF029"."RXUDTRAN" rx
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - on pa."PATNO" = rx."UDPAT#"
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - left join "ORDERF029"."RXFORXP" fm
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - on rx."UDNDC" = fm."FXNDC"
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - left join "HOSPF029"."INSPLAN" ins
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - on pa."AINS1" = ins."INSCO"
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - where pa."ISADATE" >= '01/01/15'
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - and pa."ISADATE" <= '12/31/15'
If you notice in the error log, my schema name is correctly replaced, but that seems to be where the error is coming from.
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - offending row : [facility_variable String(3)]
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 -
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - Error setting value #1 [String(3)] on prepared statement
2016/05/26 17:18:56 - Medhost_DOT_extraction.0 - Descriptor index not valid.
My current understanding is that Kettle prepares connection statements in advance and therefore when the schema name is applied that is throwing off the SQL query. Is this correct? How can I fix this?
Thanks