Hi Forum.
Need your expertise on the following question.
I have the following file which I would like to parse, find first block of SELECT statment and concatenate all input fields as 1 field (~ delimited):
Old File:
SELECT /*+ USE_HASH(CCOMM ICAR IMAP IAS IP IMAS IMPS IAP SPCA) */
CCOMM.CAMPAIGN_SK AS CAMPAIGN_SK,
CCOMM.CONTACT_DTTM AS ENTRY_DATE,
'1005' AS COST_CENTRE,
SCPA.CIF AS CIF
FROM ( SELECT /*+ USE_HASH(CCP CCCH CC CCE CCOMM CCOMME) */
MAX (CCP.CAMPAIGN_SK) AS CAMPAIGN_SK,
CCCH.CUSTOMER_KEY AS CUSTOMER_KEY,
MAX (TRUNC (CCCH.CONTACT_DTTM)) AS CONTACT_DTTM,
MAX (CCOMME.OFFER) AS OFFER,
MIN (CCE.CAMPAIGN_START_DATE) AS CAMPAIGN_START_DATE,
MAX (CCE.CAMPAIGN_END_DATE) AS CAMPAIGN_END_DATE
FROM SAS_MA.CI_CELL_PACKAGE CCP,
SAS_MA.CI_CUST_CONTACT_HISTORY CCCH,
SAS_MA.CI_CAMPAIGN CC,
SAS_MA.CI_CAMPAIGN_EXT CCE,
SAS_MA.CI_COMMUNICATION CCOMM,
SAS_MA.CI_COMMUNICATION_EXT CCOMME
.....
Desired File:
SELECT /*+ USE_HASH(CCOMM ICAR IMAP IAS IP IMAS IMPS IAP SPCA) */
CCOMM.CAMPAIGN_SK||'~'||CCOMM.CONTACT_DTTM||'~'||'1005'||'~'||SCPA.CIF
FROM ( SELECT /*+ USE_HASH(CCP CCCH CC CCE CCOMM CCOMME) */
MAX (CCP.CAMPAIGN_SK) AS CAMPAIGN_SK,
CCCH.CUSTOMER_KEY AS CUSTOMER_KEY,
MAX (TRUNC (CCCH.CONTACT_DTTM)) AS CONTACT_DTTM,
MAX (CCOMME.OFFER) AS OFFER,
MIN (CCE.CAMPAIGN_START_DATE) AS CAMPAIGN_START_DATE,
MAX (CCE.CAMPAIGN_END_DATE) AS CAMPAIGN_END_DATE
FROM SAS_MA.CI_CELL_PACKAGE CCP,
SAS_MA.CI_CUST_CONTACT_HISTORY CCCH,
SAS_MA.CI_CAMPAIGN CC,
SAS_MA.CI_CAMPAIGN_EXT CCE,
SAS_MA.CI_COMMUNICATION CCOMM,
SAS_MA.CI_COMMUNICATION_EXT CCOMME
.....
Thank you for all feedback/insight that you may have.