You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fails to replace last occurrence of string v_wofstgvw, reproduced in 3.2.3, 3.2.4 and 3.3.1
a='''
-- V_INT_CTRC_ENTRY_DATE
--------------------------------------------------------------------------------
REPLACE VIEW V_WOFSTGVW.V_INT_CTRC_ENTRY_DATE AS LOCKING ROW FOR ACCESS
SELECT
D.DY DY,
D.DW_CRRT_FL CURRENT_FLAG,
D.MTH CURRENT_MTH,
(CAST(D.DY AS DATE) - EXTRACT(DAY FROM (CAST( D.DY AS DATE)))+1) CURRENT_MTH_BEG_DT,
ADD_MONTHS ((CAST(D.DY AS DATE) - EXTRACT(DAY FROM (CAST( D.DY AS DATE)))+1) , 1) - 1 CURRENT_MTH_END_DT,
D.WOFC_MTH_END_FLG CURRENT_MTH_END_FLG,
D.WOFC_QTR_END_FLG CURRENT_QTR_END_FL,
D.YR CURRENT_YEAR,
((D.YR||'01/01')(DATE)) CURRENT_YEAR_BEG_DT ,
((D.YR||'12/31')(DATE)) CURRENT_YEAR_END_DT ,
D.WOFC_YR_END_FLG CURRENT_YEAR_END_FL,
D.HDAY_FLG HOLIDAY_FLG,
CAST(ADD_MONTHS (CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN WOFCO_FRST_DY_MTH
ELSE WOFCO_BEGIN_MTH_DT
END,
-1)AS CHAR(7)) PREV_REP_MTH,
ADD_MONTHS (CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN WOFCO_FRST_DY_MTH
ELSE WOFCO_BEGIN_MTH_DT
END,
-1
) PREV_REP_MTH_BEG_DT,
ADD_MONTHS (CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN D.DY
ELSE D.WOFCO_MTH_END_DT
END,
-1
) PREV_REP_MTH_END_DT
,
D.PREV_MTH PRIOR_MTH,
PSETM.PRIOR_SET_CURRENT_MTH,
PSETM.PRIOR_SET_CURRENT_MTH_BGN_DT,
PSETM.PRIOR_SET_CURRENT_MTH_END_DT,
PREPSETM.PRIOR_SET_REP_MTH,
PREPSETM.PRIOR_SET_REP_MTH_BGN_DT,
PREPSETM.PRIOR_SET_REP_MTH_END_DT,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN MTH
ELSE PREV_MTH
END REP_MTH,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN WOFCO_FRST_DY_MTH
ELSE WOFCO_BEGIN_MTH_DT
END REP_MTH_BEG_DT,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN D.DY
ELSE D.WOFCO_MTH_END_DT
END REP_MTH_END_DT,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN ADD_MONTHS (D.WOFCO_FRST_DY_MTH,
12
)
ELSE ADD_MONTHS (D.WOFCO_BEGIN_MTH_DT, 12)
END REP_MTH_NEXT_YEAR_BEG_DT,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN ADD_MONTHS (D.DY, 12)
ELSE D.WOFCO_MTH_NXT_YR_DT
END REP_MTH_NEXT_YEAR_END_DT,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN D.YR
ELSE SUBSTR (PREV_MTH, 1, 4)
END REP_YEAR,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN (CAST((CAST(D.YR AS DATE FORMAT 'YYYY')||'/01/01') AS DATE FORMAT 'YYYY/MM/DD'))
ELSE (CAST((SUBSTR (PREV_MTH, 1, 4) || '/01/01')AS DATE FORMAT 'YYYY/MM/DD' ))
END REP_YEAR_BEG_DT,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN (CAST((CAST(D.YR AS DATE FORMAT 'YYYY' )||'/12/31') AS DATE FORMAT 'YYYY/MM/DD'))
ELSE (CAST((SUBSTR (PREV_MTH, 1, 4) || '/12/31') AS DATE FORMAT 'YYYY/MM/DD' ))
END REP_YEAR_END_DT,
D.SET_MTH SET_CURRENT_MTH,
D.SET_BEGIN_MTH_DT SET_CURRENT_MTH_BGN_DT,
D.SET_MTH_END_DT SET_CURRENT_MTH_END_DT,
D.SET_YR SET_CURRENT_YEAR,
D1.SET_CURRENT_BEG_DT SET_CURRENT_YEAR_BEG_DT,
D2.SET_CURRENT_END_DT SET_CURRENT_YEAR_END_DT,
D.SET_MTH_END_FLG SET_MTH_END_FLAG,
D.SET_QTR_END_FLG SET_QTR_END_FLAG,
CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN (CAST (D.SET_BEGIN_MTH_DT AS CHAR(7)))
ELSE (CAST (SET_MTH_BEG_PREV_DT AS CHAR (7)))
END SET_REP_MTH,
CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN D.SET_BEGIN_MTH_DT
ELSE SET_MTH_BEG_PREV_DT
END SET_REP_MTH_BEG_DT,
CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN D.SET_MTH_END_DT
ELSE SET_MTH_END_PREV_DT
END SET_REP_MTH_END_DT,
SUBSTR (CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN (CAST (D.SET_BEGIN_MTH_DT AS CHAR(7)))
ELSE (CAST (SET_MTH_BEG_PREV_DT AS CHAR(7)))
END,
1, 4)SET_REP_YEAR ,
RD1.SET_RPT_YEAR_BEG_DT SET_RPT_YEAR_BEG_DT,
SYB.SET_RPT_YEAR_END_DT,
D.SET_YR_END_FLG SET_YEAR_END_FLAG
FROM V_WOFSTGVW.D_DT D
LEFT OUTER JOIN
(SELECT D.SET_YR,
MIN (D.SET_BEGIN_YR_DT) SET_CURRENT_BEG_DT
FROM V_WOFSTGVW.D_DT D
WHERE (CAST (D.SET_BEGIN_YR_DT AS CHAR(4))) =
D.SET_YR
GROUP BY D.SET_YR) D1
ON
D1.SET_YR = D.SET_YR
LEFT OUTER JOIN
(SELECT D_SET_CURR_END.SET_YR, D_SET_CURR_END.DY SET_CURRENT_END_DT
FROM V_WOFSTGVW.D_DT D_SET_CURR_END
WHERE D_SET_CURR_END.SET_YR_END_FLG = 'Y') D2
ON D2.SET_YR = D.SET_YR
LEFT OUTER JOIN
(SELECT CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN D.YR
ELSE SUBSTR (D.PREV_MTH, 1, 4)
END SET_RPT_YR,
MIN (D.SET_BEGIN_YR_DT) SET_RPT_YEAR_BEG_DT
FROM V_WOFSTGVW.D_DT D
WHERE D.PREV_MTH IS NOT NULL
AND SET_BEGIN_YR_DT IS NOT NULL
GROUP BY CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN D.YR
ELSE SUBSTR (D.PREV_MTH, 1, 4)
END) RD1
ON RD1.SET_RPT_YR =
(CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN (CAST(D.SET_BEGIN_MTH_DT AS CHAR(4)))
ELSE (CAST (D.SET_MTH_BEG_PREV_DT AS CHAR(4)))
END
)
LEFT OUTER JOIN
(SELECT D.SET_MTH, MIN (D.SET_MTH_END_DT) SET_RPT_YEAR_END_DT
FROM V_WOFSTGVW.D_DT D
WHERE D.SET_MTH =
CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN (CAST(D.SET_BEGIN_MTH_DT AS CHAR(4)))
ELSE (CAST (SET_MTH_BEG_PREV_DT AS CHAR(4)))
END
GROUP BY D.SET_MTH) SYB
ON
( SYB.SET_MTH =
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN D.YR
ELSE SUBSTR (D.PREV_MTH, 1, 4)
END
|| '/12' )
LEFT OUTER JOIN
(SELECT DISTINCT D.SET_MTH_END_FLG SET_MTH_END_FLAG,
D.SET_MTH PRIOR_SET_CURRENT_MTH,
D.SET_BEGIN_MTH_DT PRIOR_SET_CURRENT_MTH_BGN_DT,
D.SET_MTH_END_DT PRIOR_SET_CURRENT_MTH_END_DT
FROM V_WOFSTGVW.D_DT D) PSETM
ON
PSETM.PRIOR_SET_CURRENT_MTH =
(CAST (ADD_MONTHS (D.SET_BEGIN_MTH_DT, -1) AS CHAR(7)))
AND PSETM.SET_MTH_END_FLAG = D.SET_MTH_END_FLG
LEFT OUTER JOIN
(SELECT DISTINCT D.SET_MTH_END_FLG SET_MTH_END_FLAG,
D.SET_MTH PRIOR_SET_REP_MTH,
D.SET_BEGIN_MTH_DT PRIOR_SET_REP_MTH_BGN_DT,
D.SET_MTH_END_DT PRIOR_SET_REP_MTH_END_DT
FROM V_WOFSTGVW.D_DT D) PREPSETM
ON
PREPSETM.PRIOR_SET_REP_MTH =
(CAST (ADD_MONTHS (CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN D.SET_BEGIN_MTH_DT
ELSE SET_MTH_BEG_PREV_DT
END, -1 ) AS CHAR(7)) )
AND PREPSETM.SET_MTH_END_FLAG = D.SET_MTH_END_FLG
WHERE V_WOFSTGVW.D.DY <> DATE '9999-12-31';'''
re.sub('v_wofstgvw','d_dscteve', a, re.MULTILINE, re.IGNORECASE)
Activity
z06steve commentedon Apr 8, 2013
fails to replace last occurrence of string v_wofstgvw, reproduced in 3.2.3, 3.2.4 and 3.3.1
-- V_INT_CTRC_ENTRY_DATE
--------------------------------------------------------------------------------
REPLACE VIEW V_WOFSTGVW.V_INT_CTRC_ENTRY_DATE AS LOCKING ROW FOR ACCESS
SELECT
D.DY DY,
D.DW_CRRT_FL CURRENT_FLAG,
D.MTH CURRENT_MTH,
(CAST(D.DY AS DATE) - EXTRACT(DAY FROM (CAST( D.DY AS DATE)))+1) CURRENT_MTH_BEG_DT,
ADD_MONTHS ((CAST(D.DY AS DATE) - EXTRACT(DAY FROM (CAST( D.DY AS DATE)))+1) , 1) - 1 CURRENT_MTH_END_DT,
D.WOFC_MTH_END_FLG CURRENT_MTH_END_FLG,
D.WOFC_QTR_END_FLG CURRENT_QTR_END_FL,
D.YR CURRENT_YEAR,
((D.YR||'01/01')(DATE)) CURRENT_YEAR_BEG_DT ,
((D.YR||'12/31')(DATE)) CURRENT_YEAR_END_DT ,
D.WOFC_YR_END_FLG CURRENT_YEAR_END_FL,
D.HDAY_FLG HOLIDAY_FLG,
CAST(ADD_MONTHS (CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN WOFCO_FRST_DY_MTH
ELSE WOFCO_BEGIN_MTH_DT
END,
-1)AS CHAR(7)) PREV_REP_MTH,
ADD_MONTHS (CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN WOFCO_FRST_DY_MTH
ELSE WOFCO_BEGIN_MTH_DT
END,
-1
) PREV_REP_MTH_BEG_DT,
ADD_MONTHS (CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN D.DY
ELSE D.WOFCO_MTH_END_DT
END,
-1
) PREV_REP_MTH_END_DT
,
D.PREV_MTH PRIOR_MTH,
PSETM.PRIOR_SET_CURRENT_MTH,
PSETM.PRIOR_SET_CURRENT_MTH_BGN_DT,
PSETM.PRIOR_SET_CURRENT_MTH_END_DT,
PREPSETM.PRIOR_SET_REP_MTH,
PREPSETM.PRIOR_SET_REP_MTH_BGN_DT,
PREPSETM.PRIOR_SET_REP_MTH_END_DT,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN MTH
ELSE PREV_MTH
END REP_MTH,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN WOFCO_FRST_DY_MTH
ELSE WOFCO_BEGIN_MTH_DT
END REP_MTH_BEG_DT,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN D.DY
ELSE D.WOFCO_MTH_END_DT
END REP_MTH_END_DT,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN ADD_MONTHS (D.WOFCO_FRST_DY_MTH,
12
)
ELSE ADD_MONTHS (D.WOFCO_BEGIN_MTH_DT, 12)
END REP_MTH_NEXT_YEAR_BEG_DT,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN ADD_MONTHS (D.DY, 12)
ELSE D.WOFCO_MTH_NXT_YR_DT
END REP_MTH_NEXT_YEAR_END_DT,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN D.YR
ELSE SUBSTR (PREV_MTH, 1, 4)
END REP_YEAR,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN (CAST((CAST(D.YR AS DATE FORMAT 'YYYY')||'/01/01') AS DATE FORMAT 'YYYY/MM/DD'))
ELSE (CAST((SUBSTR (PREV_MTH, 1, 4) || '/01/01')AS DATE FORMAT 'YYYY/MM/DD' ))
END REP_YEAR_BEG_DT,
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN (CAST((CAST(D.YR AS DATE FORMAT 'YYYY' )||'/12/31') AS DATE FORMAT 'YYYY/MM/DD'))
ELSE (CAST((SUBSTR (PREV_MTH, 1, 4) || '/12/31') AS DATE FORMAT 'YYYY/MM/DD' ))
END REP_YEAR_END_DT,
D.SET_MTH SET_CURRENT_MTH,
D.SET_BEGIN_MTH_DT SET_CURRENT_MTH_BGN_DT,
D.SET_MTH_END_DT SET_CURRENT_MTH_END_DT,
D.SET_YR SET_CURRENT_YEAR,
D1.SET_CURRENT_BEG_DT SET_CURRENT_YEAR_BEG_DT,
D2.SET_CURRENT_END_DT SET_CURRENT_YEAR_END_DT,
D.SET_MTH_END_FLG SET_MTH_END_FLAG,
D.SET_QTR_END_FLG SET_QTR_END_FLAG,
CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN (CAST (D.SET_BEGIN_MTH_DT AS CHAR(7)))
ELSE (CAST (SET_MTH_BEG_PREV_DT AS CHAR (7)))
END SET_REP_MTH,
CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN D.SET_BEGIN_MTH_DT
ELSE SET_MTH_BEG_PREV_DT
END SET_REP_MTH_BEG_DT,
CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN D.SET_MTH_END_DT
ELSE SET_MTH_END_PREV_DT
END SET_REP_MTH_END_DT,
SUBSTR (CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN (CAST (D.SET_BEGIN_MTH_DT AS CHAR(7)))
ELSE (CAST (SET_MTH_BEG_PREV_DT AS CHAR(7)))
END,
1, 4)SET_REP_YEAR ,
RD1.SET_RPT_YEAR_BEG_DT SET_RPT_YEAR_BEG_DT,
SYB.SET_RPT_YEAR_END_DT,
D.SET_YR_END_FLG SET_YEAR_END_FLAG
FROM V_WOFSTGVW.D_DT D
LEFT OUTER JOIN
(SELECT D.SET_YR,
MIN (D.SET_BEGIN_YR_DT) SET_CURRENT_BEG_DT
FROM V_WOFSTGVW.D_DT D
WHERE (CAST (D.SET_BEGIN_YR_DT AS CHAR(4))) =
D.SET_YR
GROUP BY D.SET_YR) D1
ON
D1.SET_YR = D.SET_YR
LEFT OUTER JOIN
(SELECT D_SET_CURR_END.SET_YR, D_SET_CURR_END.DY SET_CURRENT_END_DT
FROM V_WOFSTGVW.D_DT D_SET_CURR_END
WHERE D_SET_CURR_END.SET_YR_END_FLG = 'Y') D2
ON D2.SET_YR = D.SET_YR
LEFT OUTER JOIN
(SELECT CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN D.YR
ELSE SUBSTR (D.PREV_MTH, 1, 4)
END SET_RPT_YR,
MIN (D.SET_BEGIN_YR_DT) SET_RPT_YEAR_BEG_DT
FROM V_WOFSTGVW.D_DT D
WHERE D.PREV_MTH IS NOT NULL
AND SET_BEGIN_YR_DT IS NOT NULL
GROUP BY CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN D.YR
ELSE SUBSTR (D.PREV_MTH, 1, 4)
END) RD1
ON RD1.SET_RPT_YR =
(CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN (CAST(D.SET_BEGIN_MTH_DT AS CHAR(4)))
ELSE (CAST (D.SET_MTH_BEG_PREV_DT AS CHAR(4)))
END
)
LEFT OUTER JOIN
(SELECT D.SET_MTH, MIN (D.SET_MTH_END_DT) SET_RPT_YEAR_END_DT
FROM V_WOFSTGVW.D_DT D
WHERE D.SET_MTH =
CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN (CAST(D.SET_BEGIN_MTH_DT AS CHAR(4)))
ELSE (CAST (SET_MTH_BEG_PREV_DT AS CHAR(4)))
END
GROUP BY D.SET_MTH) SYB
ON
( SYB.SET_MTH =
CASE WOFC_MTH_END_FLG
WHEN 'Y'
THEN D.YR
ELSE SUBSTR (D.PREV_MTH, 1, 4)
END
|| '/12' )
LEFT OUTER JOIN
(SELECT DISTINCT D.SET_MTH_END_FLG SET_MTH_END_FLAG,
D.SET_MTH PRIOR_SET_CURRENT_MTH,
D.SET_BEGIN_MTH_DT PRIOR_SET_CURRENT_MTH_BGN_DT,
D.SET_MTH_END_DT PRIOR_SET_CURRENT_MTH_END_DT
FROM V_WOFSTGVW.D_DT D) PSETM
ON
PSETM.PRIOR_SET_CURRENT_MTH =
(CAST (ADD_MONTHS (D.SET_BEGIN_MTH_DT, -1) AS CHAR(7)))
AND PSETM.SET_MTH_END_FLAG = D.SET_MTH_END_FLG
LEFT OUTER JOIN
(SELECT DISTINCT D.SET_MTH_END_FLG SET_MTH_END_FLAG,
D.SET_MTH PRIOR_SET_REP_MTH,
D.SET_BEGIN_MTH_DT PRIOR_SET_REP_MTH_BGN_DT,
D.SET_MTH_END_DT PRIOR_SET_REP_MTH_END_DT
FROM V_WOFSTGVW.D_DT D) PREPSETM
ON
PREPSETM.PRIOR_SET_REP_MTH =
(CAST (ADD_MONTHS (CASE D.SET_MTH_END_FLG
WHEN 'Y'
THEN D.SET_BEGIN_MTH_DT
ELSE SET_MTH_BEG_PREV_DT
END, -1 ) AS CHAR(7)) )
AND PREPSETM.SET_MTH_END_FLAG = D.SET_MTH_END_FLG
WHERE V_WOFSTGVW.D.DY <> DATE '9999-12-31';'''
bitdancer commentedon Apr 8, 2013
The fourth argument to re.sub is the replacement count. You've passed it a flag.
ezio-melotti commentedon Apr 10, 2013
See bpo-11957.