We tried to run outline commands via the tags to run as raw but we are still encountering errors. I’ve looked around but haven’t seen any references to it.
below is a snippet of the SQL that we are trying to run.
drop outline OUT_SQL27; create outline OUT_SQL27 for category tact_fix on SELECT /+ index(PE XT159P0) / SUM(PS.PAY_SEG_AMT) FROM CI_PAY PY, CI_PAY_SEG PS, CI_PAY_EVENT PE, CI_SA SA, CI_SA_TYPE SAT WHERE PY.ACCT_ID = :1 AND PY.PAY_STATUS_FLG = ‘50’ AND PS.PAY_ID = PY.PAY_ID AND SA.SA_ID = PS.SA_ID AND SAT.SA_TYPE_CD = SA.SA_TYPE_CD AND SAT.CIS_DIVISION = SA.CIS_DIVISION AND SAT.DEBT_CL_CD = :2 AND PE.PAY_EVENT_ID = PY.PAY_EVENT_ID AND PE.PAY_DT BETWEEN :3 AND :4 AND NOT EXISTS (SELECT /+ORDERED/ PT.PAY_TENDER_ID FROM CI_PAY_TNDR PT , CI_THRD_PTY TP WHERE PT.PAY_EVENT_ID = PY.PAY_EVENT_ID AND PT.PAYOR_ACCT_ID = TP.ACCT_ID);
Sorry for the late reply…please see the liquibase error message below:
SEVERE 1/21/14 6:18 PM:liquibase: Error thrown as a SAXException: Error parsing line 21 column 481 of releases/release_134.4.0/ddl/R1V134.4.00.01.CREATE_OUTLINE_20.xml: The content of elements must consist of well-formed character data or markup. liquibase.exception.ChangeLogParseException: Error parsing line 21 column 481 of releases/release_134.4.0/ddl/R1V134.4.00.01.CREATE_OUTLINE_20.xml: The content of elements must consist of well-formed character data or markup. at liquibase.parser.core.xml.XMLChangeLogSAXParser.parse(XMLChangeLogSAXParser.java:113)
And the snippet of the XML
alter session set current_schema = CISADM;
exec dbms_outln.drop_by_cat(‘TACT_FIX’);
drop outline OUT_SQL20;
create outline OUT_SQL20 for category tact_fix on SELECT /+INDEX(CA1 XT120S1)/ TRUNC(REG_DATA_DTTM, ‘HH’)+(30* CEIL(TO_NUMBER(TO_CHAR(REG_DATA_DTTM,‘MI’)) /30))/1440 AS REG_DATA_DTTM, SUM (CB1.INTV_REG_DATA * TO_NUMBER(RTRIM(LTRIM(SRV.USAGE_FLG)) ||‘1’) * TO_NUMBER(RTRIM(LTRIM(SRV.HOW_TO_USE_FLG)) ||‘1’)) ,SRV.UOM_CD ,SRV.REG_ID FROM CI_SA_IREG_VW SRV, CI_REG_DATA_SET CA1, CI_REG_DATA CB1, CI_WFM_OPT DP1 WHERE SRV.SA_ID = :1 AND (SRV.UOM_CD = :2 OR EXISTS (SELECT ‘X’ FROM CI_BF_CHAR BFC WHERE BFC.BF_CD = :3 AND ’ ’ <> :4 AND BFC.CHAR_VAL = SRV.UOM_CD)) AND SRV.SQI_CD = :5 AND SRV.USAGE_FLG IN (’+’, ‘-’) AND SRV.HOW_TO_USE_FLG IN (’+’, ‘-’) AND SRV.START_DTTM < :6 AND SRV.INSTALL_DTTM < :7 AND (SRV.STOP_DTTM IS NULL OR SRV.STOP_DTTM > :8) AND (SRV.REMOVAL_DTTM IS NULL OR SRV.REMOVAL_DTTM > :9) AND CA1.REG_ID = SRV.REG_ID AND CA1.REG_DATA_SET_ID = CB1.REG_DATA_SET_ID AND CA1.REG_DS_STATUS_FLG = :10 AND CB1.REG_DATA_DTTM > :11 AND CB1.REG_DATA_DTTM <= :12 AND CA1.SET_DTTM <= :13 AND CA1.REG_DS_TYPE_FLG <> :14 AND DP1.WFM_NAME = :15 AND DP1.EXT_OPT_TYPE = CA1.REG_DS_TYPE_FLG AND DP1.SEQ_NUM = 1 AND NOT EXISTS (SELECT /+INDEX(CA11 CM120S1)/ ‘x’ FROM CI_REG_DATA_SET CA11 ,CI_REG_DATA CB11 ,CI_WFM_OPT DP11 WHERE CA11.REG_ID = CA1.REG_ID AND CB11.REG_DATA_DTTM = CB1.REG_DATA_DTTM AND CA11.REG_DATA_SET_ID = CB11.REG_DATA_SET_ID AND CA11.REG_DS_STATUS_FLG = :16 AND CA11.SET_DTTM <= :17 AND DP11.WFM_NAME = DP1.WFM_NAME AND DP11.EXT_OPT_TYPE = CA11.REG_DS_TYPE_FLG AND DP11.SEQ_NUM = DP1.SEQ_NUM AND CA11.REG_DATA_SET_ID <> CA1.REG_DATA_SET_ID AND( (DP11.WFM_OPT_VAL < DP1.WFM_OPT_VAL) OR (CA11.SET_DTTM > CA1.SET_DTTM AND DP11.WFM_OPT_VAL = DP1.WFM_OPT_VAL) ) ) GROUP BY TRUNC(REG_DATA_DTTM, ‘HH’)+(30* CEIL(TO_NUMBER(TO_CHAR(REG_DATA_DTTM,‘MI’)) /30))/1440 ,SRV.UOM_CD ,SRV.REG_ID ORDER BY REG_DATA_DTTM,SRV.UOM_CD;
…
=====================================
I’ve put the outline in tags but liquibase is complaining that the SQL is not formed correctly…
That error is an XML parsing error. Since your sql has < and > chars the XML parser thinks you are specifying tags. You’ll want to wrap your sql in a CDATA block so it parses it correctly.