grahn

Cognos SQL

Aug 17th, 2011
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 239.68 KB | None | 0 0
  1. SELECT *
  2. FROM  foo
  3. WHERE (DAY_DT BETWEEN
  4.   CASE
  5.     WHEN EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) ) BETWEEN 1 AND 3
  6.     THEN ((
  7.       CASE
  8.         WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  9.         THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  10.         ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  11.       END                                            - numtodsinterval( EXTRACT( DAY FROM
  12.       CASE
  13.         WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  14.         THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  15.         ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  16.       END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1)))
  17.     WHEN EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) ) BETWEEN 4 AND 6
  18.     THEN
  19.       CASE
  20.         WHEN EXTRACT( DAY FROM ((
  21.           CASE
  22.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  23.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  24.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  25.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  26.           CASE
  27.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  28.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  29.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  30.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  31.           CASE
  32.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  33.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  34.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  35.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  36.           CASE
  37.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  38.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  39.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  40.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  41.           CASE
  42.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  43.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  44.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  45.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  46.           CASE
  47.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  48.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  49.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  50.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  51.         THEN ((
  52.           CASE
  53.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  54.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  55.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  56.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  57.           CASE
  58.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  59.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  60.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  61.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  62.           CASE
  63.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  64.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  65.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  66.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  67.           CASE
  68.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  69.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  70.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  71.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  72.         ELSE ((
  73.           CASE
  74.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  75.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  76.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  77.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  78.           CASE
  79.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  80.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  81.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  82.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 3, 'MONTH' )
  83.       END
  84.     WHEN EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) ) BETWEEN 6 AND 9
  85.     THEN
  86.       CASE
  87.         WHEN EXTRACT( DAY FROM ((
  88.           CASE
  89.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  90.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  91.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  92.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  93.           CASE
  94.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  95.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  96.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  97.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  98.           CASE
  99.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  100.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  101.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  102.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  103.           CASE
  104.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  105.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  106.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  107.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  108.           CASE
  109.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  110.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  111.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  112.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  113.           CASE
  114.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  115.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  116.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  117.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  118.         THEN ((
  119.           CASE
  120.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  121.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  122.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  123.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  124.           CASE
  125.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  126.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  127.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  128.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  129.           CASE
  130.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  131.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  132.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  133.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  134.           CASE
  135.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  136.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  137.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  138.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  139.         ELSE ((
  140.           CASE
  141.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  142.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  143.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  144.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  145.           CASE
  146.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  147.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  148.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  149.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 6, 'MONTH' )
  150.       END
  151.     ELSE
  152.       CASE
  153.         WHEN EXTRACT( DAY FROM ((
  154.           CASE
  155.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  156.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  157.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  158.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  159.           CASE
  160.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  161.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  162.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  163.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  164.           CASE
  165.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  166.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  167.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  168.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  169.           CASE
  170.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  171.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  172.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  173.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  174.           CASE
  175.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  176.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  177.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  178.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  179.           CASE
  180.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  181.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  182.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  183.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  184.         THEN ((
  185.           CASE
  186.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  187.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  188.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  189.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  190.           CASE
  191.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  192.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  193.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  194.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  195.           CASE
  196.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  197.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  198.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  199.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  200.           CASE
  201.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  202.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  203.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  204.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  205.         ELSE ((
  206.           CASE
  207.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  208.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  209.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  210.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  211.           CASE
  212.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  213.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  214.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  215.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 9, 'MONTH' )
  216.       END
  217.   END AND
  218.   trunc( CURRENT_DATE )
  219.   OR
  220.   DAY_DT BETWEEN
  221.   CASE
  222.     WHEN EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) ) BETWEEN 1 AND 3
  223.     THEN
  224.       CASE
  225.         WHEN EXTRACT( DAY FROM ((
  226.           CASE
  227.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  228.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  229.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  230.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  231.           CASE
  232.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  233.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  234.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  235.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  236.           CASE
  237.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  238.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  239.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  240.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  241.           CASE
  242.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  243.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  244.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  245.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -12, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  246.           CASE
  247.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  248.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  249.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  250.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  251.           CASE
  252.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  253.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  254.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  255.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  256.         THEN ((
  257.           CASE
  258.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  259.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  260.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  261.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  262.           CASE
  263.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  264.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  265.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  266.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  267.           CASE
  268.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  269.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  270.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  271.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  272.           CASE
  273.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  274.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  275.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  276.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -12, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  277.         ELSE ((
  278.           CASE
  279.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  280.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  281.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  282.           END                                            - numtodsinterval( EXTRACT( DAY FROM
  283.           CASE
  284.             WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  285.             THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  286.             ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  287.           END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( -12, 'MONTH' )
  288.       END
  289.     WHEN EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) ) BETWEEN 4 AND 6
  290.     THEN
  291.       CASE
  292.         WHEN EXTRACT( DAY FROM
  293.           CASE
  294.             WHEN EXTRACT( DAY FROM ((
  295.               CASE
  296.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  297.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  298.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  299.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  300.               CASE
  301.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  302.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  303.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  304.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  305.               CASE
  306.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  307.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  308.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  309.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  310.               CASE
  311.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  312.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  313.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  314.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  315.               CASE
  316.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  317.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  318.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  319.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  320.               CASE
  321.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  322.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  323.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  324.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  325.             THEN ((
  326.               CASE
  327.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  328.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  329.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  330.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  331.               CASE
  332.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  333.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  334.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  335.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  336.               CASE
  337.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  338.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  339.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  340.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  341.               CASE
  342.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  343.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  344.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  345.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  346.             ELSE ((
  347.               CASE
  348.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  349.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  350.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  351.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  352.               CASE
  353.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  354.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  355.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  356.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 3, 'MONTH' )
  357.           END                                                - numtodsinterval( EXTRACT( DAY FROM
  358.           CASE
  359.             WHEN EXTRACT( DAY FROM ((
  360.               CASE
  361.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  362.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  363.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  364.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  365.               CASE
  366.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  367.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  368.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  369.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  370.               CASE
  371.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  372.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  373.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  374.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  375.               CASE
  376.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  377.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  378.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  379.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  380.               CASE
  381.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  382.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  383.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  384.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  385.               CASE
  386.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  387.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  388.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  389.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  390.             THEN ((
  391.               CASE
  392.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  393.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  394.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  395.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  396.               CASE
  397.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  398.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  399.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  400.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  401.               CASE
  402.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  403.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  404.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  405.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  406.               CASE
  407.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  408.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  409.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  410.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  411.             ELSE ((
  412.               CASE
  413.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  414.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  415.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  416.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  417.               CASE
  418.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  419.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  420.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  421.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 3, 'MONTH' )
  422.           END ), 'DAY' )                                     + INTERVAL '1' DAY + numtoyminterval( -12, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM
  423.           CASE
  424.             WHEN EXTRACT( DAY FROM ((
  425.               CASE
  426.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  427.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  428.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  429.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  430.               CASE
  431.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  432.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  433.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  434.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  435.               CASE
  436.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  437.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  438.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  439.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  440.               CASE
  441.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  442.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  443.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  444.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  445.               CASE
  446.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  447.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  448.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  449.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  450.               CASE
  451.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  452.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  453.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  454.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  455.             THEN ((
  456.               CASE
  457.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  458.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  459.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  460.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  461.               CASE
  462.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  463.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  464.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  465.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  466.               CASE
  467.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  468.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  469.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  470.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  471.               CASE
  472.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  473.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  474.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  475.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  476.             ELSE ((
  477.               CASE
  478.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  479.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  480.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  481.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  482.               CASE
  483.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  484.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  485.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  486.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 3, 'MONTH' )
  487.           END )
  488.         THEN
  489.           CASE
  490.             WHEN EXTRACT( DAY FROM ((
  491.               CASE
  492.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  493.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  494.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  495.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  496.               CASE
  497.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  498.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  499.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  500.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  501.               CASE
  502.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  503.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  504.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  505.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  506.               CASE
  507.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  508.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  509.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  510.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  511.               CASE
  512.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  513.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  514.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  515.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  516.               CASE
  517.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  518.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  519.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  520.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  521.             THEN ((
  522.               CASE
  523.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  524.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  525.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  526.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  527.               CASE
  528.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  529.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  530.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  531.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  532.               CASE
  533.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  534.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  535.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  536.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  537.               CASE
  538.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  539.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  540.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  541.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  542.             ELSE ((
  543.               CASE
  544.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  545.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  546.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  547.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  548.               CASE
  549.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  550.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  551.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  552.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 3, 'MONTH' )
  553.           END                                                - numtodsinterval( EXTRACT( DAY FROM
  554.           CASE
  555.             WHEN EXTRACT( DAY FROM ((
  556.               CASE
  557.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  558.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  559.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  560.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  561.               CASE
  562.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  563.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  564.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  565.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  566.               CASE
  567.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  568.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  569.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  570.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  571.               CASE
  572.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  573.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  574.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  575.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  576.               CASE
  577.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  578.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  579.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  580.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  581.               CASE
  582.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  583.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  584.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  585.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  586.             THEN ((
  587.               CASE
  588.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  589.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  590.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  591.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  592.               CASE
  593.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  594.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  595.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  596.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  597.               CASE
  598.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  599.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  600.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  601.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  602.               CASE
  603.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  604.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  605.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  606.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  607.             ELSE ((
  608.               CASE
  609.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  610.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  611.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  612.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  613.               CASE
  614.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  615.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  616.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  617.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 3, 'MONTH' )
  618.           END ), 'DAY' )                                     + INTERVAL '1' DAY + numtoyminterval( -12, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  619.         ELSE
  620.           CASE
  621.             WHEN EXTRACT( DAY FROM ((
  622.               CASE
  623.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  624.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  625.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  626.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  627.               CASE
  628.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  629.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  630.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  631.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  632.               CASE
  633.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  634.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  635.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  636.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  637.               CASE
  638.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  639.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  640.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  641.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  642.               CASE
  643.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  644.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  645.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  646.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  647.               CASE
  648.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  649.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  650.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  651.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  652.             THEN ((
  653.               CASE
  654.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  655.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  656.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  657.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  658.               CASE
  659.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  660.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  661.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  662.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  663.               CASE
  664.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  665.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  666.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  667.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  668.               CASE
  669.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  670.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  671.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  672.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 3, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  673.             ELSE ((
  674.               CASE
  675.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  676.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  677.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  678.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  679.               CASE
  680.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  681.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  682.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  683.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 3, 'MONTH' )
  684.           END                                                + numtoyminterval( -12, 'MONTH' )
  685.       END
  686.     WHEN EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) ) BETWEEN 6 AND 9
  687.     THEN
  688.       CASE
  689.         WHEN EXTRACT( DAY FROM
  690.           CASE
  691.             WHEN EXTRACT( DAY FROM ((
  692.               CASE
  693.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  694.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  695.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  696.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  697.               CASE
  698.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  699.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  700.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  701.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  702.               CASE
  703.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  704.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  705.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  706.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  707.               CASE
  708.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  709.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  710.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  711.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  712.               CASE
  713.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  714.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  715.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  716.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  717.               CASE
  718.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  719.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  720.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  721.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  722.             THEN ((
  723.               CASE
  724.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  725.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  726.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  727.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  728.               CASE
  729.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  730.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  731.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  732.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  733.               CASE
  734.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  735.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  736.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  737.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  738.               CASE
  739.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  740.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  741.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  742.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  743.             ELSE ((
  744.               CASE
  745.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  746.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  747.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  748.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  749.               CASE
  750.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  751.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  752.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  753.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 6, 'MONTH' )
  754.           END                                                - numtodsinterval( EXTRACT( DAY FROM
  755.           CASE
  756.             WHEN EXTRACT( DAY FROM ((
  757.               CASE
  758.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  759.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  760.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  761.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  762.               CASE
  763.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  764.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  765.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  766.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  767.               CASE
  768.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  769.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  770.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  771.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  772.               CASE
  773.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  774.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  775.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  776.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  777.               CASE
  778.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  779.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  780.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  781.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  782.               CASE
  783.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  784.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  785.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  786.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  787.             THEN ((
  788.               CASE
  789.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  790.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  791.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  792.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  793.               CASE
  794.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  795.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  796.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  797.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  798.               CASE
  799.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  800.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  801.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  802.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  803.               CASE
  804.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  805.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  806.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  807.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  808.             ELSE ((
  809.               CASE
  810.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  811.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  812.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  813.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  814.               CASE
  815.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  816.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  817.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  818.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 6, 'MONTH' )
  819.           END ), 'DAY' )                                     + INTERVAL '1' DAY + numtoyminterval( -12, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM
  820.           CASE
  821.             WHEN EXTRACT( DAY FROM ((
  822.               CASE
  823.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  824.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  825.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  826.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  827.               CASE
  828.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  829.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  830.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  831.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  832.               CASE
  833.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  834.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  835.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  836.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  837.               CASE
  838.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  839.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  840.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  841.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  842.               CASE
  843.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  844.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  845.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  846.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  847.               CASE
  848.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  849.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  850.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  851.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  852.             THEN ((
  853.               CASE
  854.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  855.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  856.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  857.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  858.               CASE
  859.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  860.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  861.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  862.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  863.               CASE
  864.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  865.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  866.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  867.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  868.               CASE
  869.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  870.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  871.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  872.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  873.             ELSE ((
  874.               CASE
  875.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  876.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  877.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  878.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  879.               CASE
  880.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  881.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  882.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  883.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 6, 'MONTH' )
  884.           END )
  885.         THEN
  886.           CASE
  887.             WHEN EXTRACT( DAY FROM ((
  888.               CASE
  889.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  890.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  891.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  892.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  893.               CASE
  894.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  895.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  896.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  897.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  898.               CASE
  899.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  900.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  901.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  902.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  903.               CASE
  904.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  905.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  906.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  907.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  908.               CASE
  909.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  910.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  911.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  912.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  913.               CASE
  914.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  915.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  916.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  917.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  918.             THEN ((
  919.               CASE
  920.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  921.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  922.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  923.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  924.               CASE
  925.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  926.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  927.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  928.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  929.               CASE
  930.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  931.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  932.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  933.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  934.               CASE
  935.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  936.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  937.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  938.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  939.             ELSE ((
  940.               CASE
  941.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  942.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  943.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  944.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  945.               CASE
  946.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  947.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  948.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  949.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 6, 'MONTH' )
  950.           END                                                - numtodsinterval( EXTRACT( DAY FROM
  951.           CASE
  952.             WHEN EXTRACT( DAY FROM ((
  953.               CASE
  954.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  955.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  956.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  957.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  958.               CASE
  959.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  960.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  961.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  962.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  963.               CASE
  964.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  965.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  966.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  967.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  968.               CASE
  969.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  970.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  971.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  972.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  973.               CASE
  974.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  975.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  976.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  977.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  978.               CASE
  979.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  980.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  981.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  982.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  983.             THEN ((
  984.               CASE
  985.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  986.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  987.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  988.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  989.               CASE
  990.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  991.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  992.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  993.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  994.               CASE
  995.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  996.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  997.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  998.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  999.               CASE
  1000.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1001.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1002.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1003.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1004.             ELSE ((
  1005.               CASE
  1006.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1007.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1008.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1009.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1010.               CASE
  1011.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1012.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1013.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1014.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 6, 'MONTH' )
  1015.           END ), 'DAY' )                                     + INTERVAL '1' DAY + numtoyminterval( -12, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1016.         ELSE
  1017.           CASE
  1018.             WHEN EXTRACT( DAY FROM ((
  1019.               CASE
  1020.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1021.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1022.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1023.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1024.               CASE
  1025.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1026.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1027.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1028.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1029.               CASE
  1030.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1031.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1032.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1033.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1034.               CASE
  1035.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1036.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1037.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1038.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  1039.               CASE
  1040.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1041.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1042.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1043.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1044.               CASE
  1045.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1046.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1047.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1048.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  1049.             THEN ((
  1050.               CASE
  1051.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1052.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1053.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1054.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1055.               CASE
  1056.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1057.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1058.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1059.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1060.               CASE
  1061.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1062.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1063.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1064.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1065.               CASE
  1066.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1067.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1068.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1069.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 6, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1070.             ELSE ((
  1071.               CASE
  1072.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1073.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1074.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1075.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1076.               CASE
  1077.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1078.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1079.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1080.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 6, 'MONTH' )
  1081.           END                                                + numtoyminterval( -12, 'MONTH' )
  1082.       END
  1083.     ELSE
  1084.       CASE
  1085.         WHEN EXTRACT( DAY FROM
  1086.           CASE
  1087.             WHEN EXTRACT( DAY FROM ((
  1088.               CASE
  1089.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1090.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1091.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1092.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1093.               CASE
  1094.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1095.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1096.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1097.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1098.               CASE
  1099.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1100.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1101.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1102.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1103.               CASE
  1104.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1105.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1106.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1107.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  1108.               CASE
  1109.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1110.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1111.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1112.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1113.               CASE
  1114.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1115.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1116.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1117.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  1118.             THEN ((
  1119.               CASE
  1120.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1121.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1122.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1123.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1124.               CASE
  1125.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1126.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1127.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1128.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1129.               CASE
  1130.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1131.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1132.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1133.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1134.               CASE
  1135.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1136.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1137.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1138.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1139.             ELSE ((
  1140.               CASE
  1141.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1142.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1143.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1144.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1145.               CASE
  1146.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1147.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1148.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1149.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 9, 'MONTH' )
  1150.           END                                                - numtodsinterval( EXTRACT( DAY FROM
  1151.           CASE
  1152.             WHEN EXTRACT( DAY FROM ((
  1153.               CASE
  1154.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1155.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1156.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1157.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1158.               CASE
  1159.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1160.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1161.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1162.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1163.               CASE
  1164.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1165.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1166.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1167.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1168.               CASE
  1169.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1170.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1171.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1172.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  1173.               CASE
  1174.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1175.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1176.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1177.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1178.               CASE
  1179.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1180.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1181.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1182.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  1183.             THEN ((
  1184.               CASE
  1185.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1186.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1187.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1188.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1189.               CASE
  1190.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1191.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1192.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1193.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1194.               CASE
  1195.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1196.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1197.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1198.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1199.               CASE
  1200.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1201.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1202.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1203.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1204.             ELSE ((
  1205.               CASE
  1206.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1207.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1208.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1209.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1210.               CASE
  1211.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1212.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1213.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1214.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 9, 'MONTH' )
  1215.           END ), 'DAY' )                                     + INTERVAL '1' DAY + numtoyminterval( -12, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM
  1216.           CASE
  1217.             WHEN EXTRACT( DAY FROM ((
  1218.               CASE
  1219.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1220.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1221.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1222.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1223.               CASE
  1224.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1225.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1226.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1227.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1228.               CASE
  1229.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1230.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1231.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1232.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1233.               CASE
  1234.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1235.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1236.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1237.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  1238.               CASE
  1239.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1240.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1241.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1242.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1243.               CASE
  1244.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1245.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1246.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1247.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  1248.             THEN ((
  1249.               CASE
  1250.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1251.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1252.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1253.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1254.               CASE
  1255.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1256.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1257.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1258.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1259.               CASE
  1260.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1261.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1262.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1263.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1264.               CASE
  1265.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1266.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1267.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1268.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1269.             ELSE ((
  1270.               CASE
  1271.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1272.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1273.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1274.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1275.               CASE
  1276.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1277.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1278.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1279.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 9, 'MONTH' )
  1280.           END )
  1281.         THEN
  1282.           CASE
  1283.             WHEN EXTRACT( DAY FROM ((
  1284.               CASE
  1285.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1286.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1287.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1288.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1289.               CASE
  1290.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1291.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1292.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1293.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1294.               CASE
  1295.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1296.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1297.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1298.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1299.               CASE
  1300.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1301.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1302.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1303.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  1304.               CASE
  1305.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1306.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1307.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1308.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1309.               CASE
  1310.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1311.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1312.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1313.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  1314.             THEN ((
  1315.               CASE
  1316.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1317.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1318.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1319.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1320.               CASE
  1321.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1322.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1323.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1324.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1325.               CASE
  1326.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1327.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1328.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1329.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1330.               CASE
  1331.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1332.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1333.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1334.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1335.             ELSE ((
  1336.               CASE
  1337.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1338.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1339.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1340.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1341.               CASE
  1342.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1343.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1344.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1345.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 9, 'MONTH' )
  1346.           END                                                - numtodsinterval( EXTRACT( DAY FROM
  1347.           CASE
  1348.             WHEN EXTRACT( DAY FROM ((
  1349.               CASE
  1350.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1351.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1352.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1353.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1354.               CASE
  1355.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1356.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1357.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1358.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1359.               CASE
  1360.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1361.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1362.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1363.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1364.               CASE
  1365.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1366.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1367.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1368.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  1369.               CASE
  1370.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1371.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1372.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1373.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1374.               CASE
  1375.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1376.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1377.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1378.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  1379.             THEN ((
  1380.               CASE
  1381.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1382.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1383.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1384.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1385.               CASE
  1386.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1387.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1388.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1389.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1390.               CASE
  1391.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1392.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1393.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1394.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1395.               CASE
  1396.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1397.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1398.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1399.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1400.             ELSE ((
  1401.               CASE
  1402.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1403.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1404.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1405.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1406.               CASE
  1407.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1408.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1409.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1410.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 9, 'MONTH' )
  1411.           END ), 'DAY' )                                     + INTERVAL '1' DAY + numtoyminterval( -12, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1412.         ELSE
  1413.           CASE
  1414.             WHEN EXTRACT( DAY FROM ((
  1415.               CASE
  1416.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1417.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1418.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1419.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1420.               CASE
  1421.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1422.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1423.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1424.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1425.               CASE
  1426.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1427.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1428.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1429.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1430.               CASE
  1431.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1432.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1433.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1434.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM ((
  1435.               CASE
  1436.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1437.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1438.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1439.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1440.               CASE
  1441.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1442.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1443.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1444.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) )
  1445.             THEN ((
  1446.               CASE
  1447.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1448.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1449.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1450.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1451.               CASE
  1452.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1453.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1454.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1455.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) - numtodsinterval( EXTRACT( DAY FROM ((
  1456.               CASE
  1457.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1458.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1459.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1460.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1461.               CASE
  1462.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1463.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1464.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1465.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( 9, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1466.             ELSE ((
  1467.               CASE
  1468.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1469.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1470.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1471.               END                                            - numtodsinterval( EXTRACT( DAY FROM
  1472.               CASE
  1473.                 WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1474.                 THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1475.                 ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -(1*EXTRACT( MONTH FROM (trunc( CURRENT_DATE )) )), 'MONTH' )
  1476.               END ), 'DAY' )                                 + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY) + (INTERVAL '1' DAY * (1))) + numtoyminterval( 9, 'MONTH' )
  1477.           END                                                + numtoyminterval( -12, 'MONTH' )
  1478.       END
  1479.   END AND
  1480.   CASE
  1481.     WHEN EXTRACT( DAY FROM trunc( CURRENT_DATE ) - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -12, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY ) < EXTRACT( DAY FROM trunc( CURRENT_DATE ) )
  1482.     THEN trunc( CURRENT_DATE )                   - numtodsinterval( EXTRACT( DAY FROM trunc( CURRENT_DATE ) ), 'DAY' ) + INTERVAL '1' DAY + numtoyminterval( -12, 'MONTH' ) + INTERVAL '1' MONTH - INTERVAL '1' DAY
  1483.     ELSE trunc( CURRENT_DATE )                   + numtoyminterval( -12, 'MONTH' )
  1484.   END)
Advertisement
Add Comment
Please, Sign In to add comment