How to bridge (fill) gaps when converting a 2006 geometry  into a 2002 geometry

Is it at all possible to bridge (fill) gaps when converting a 2006 geometry into a single 2002 geometry. I have a solution for the conversion from 2006 to 2002 provided by BHall but upon further investigation investigation of my dataset some of the multi line polygons have gaps which I need to fill and I am not sure how to go about this.
Here is a simple example of what I am trying to achieve
Before
SELECT (sdo_geometry(2006, 81989, NULL,
                mdsys.sdo_elem_info_array(1,2,1,5,2,1,9,2,1,13,2,1),
                mdsys.sdo_ordinate_array(16,0.999,16.998,-0.001,17.253,-0.001,18.003,0.999,18.003,0.999,19.001,0.999,19.001,0.999,19.999,-0.001)))
  FROM dual
After
SELECT (sdo_geometry(2006, 81989,NULL,
               mdsys.sdo_elem_info_array(1,2,1),
               mdsys.sdo_ordinate_array(16,0.999,17.253,-0.001,18.003,0.999,19.001,0.999,19.999,-0.001))) FROM dual    
Thanks in advance

Okay Roché,
You might need to break this problem down into smaller parts for the forum.  All your examples show the gap being replaced by a single vertice - e.g. you want to "snap" the gap together.  I'd suggest this is just complicating your question.  Once the gap is filled (with a line) then you can run SDO_UTIL.REMOVE_DUPLICATE_VERTICES afterwards to remove the new line if its below your tolerance.  I think that Bryan's code wrapped in remove duplicate vertices will solve your second scenario.  But overall I think it would be helpful to focus just on the filling and leave the snapping for a follow-up question.
So back to scenario #1, below is some code I wrote a while back that might do what you want or at least get you started.     Note that the input must be a multistring and the multistring cannot be "spaghetti".  In other words each line in the multistring must be disjoint or at most touch other lines only at endpoints. The goal is to sift through the lines and create a single linestring using the smallest gaps.  It's not subtle and will indeed produce bad geometries if the inputs are setup in an impossible manner.  There are also some rare geodetic bugs with SDO_GEOM.RELATE that crop up.  So you'll note I test both distance and relate in some places.  That's intentional though kind of dumb.
Hopefully this helps.  If you improve the code please shoot a copy back to me.
Cheers,
Paul   
CREATE OR REPLACE PACKAGE dz_gap_fill
AUTHID CURRENT_USER
AS
   FUNCTION linear_gap_filler(
       p_input            IN  MDSYS.SDO_GEOMETRY
      ,p_tolerance        IN  NUMBER DEFAULT 0.05
   ) RETURN MDSYS.SDO_GEOMETRY;
END dz_gap_fill;
CREATE OR REPLACE PACKAGE BODY dz_gap_fill
AS
   FUNCTION fast_point(
       p_x             IN  NUMBER
      ,p_y             IN  NUMBER
      ,p_z             IN  NUMBER DEFAULT NULL
      ,p_m             IN  NUMBER DEFAULT NULL
      ,p_srid          IN  NUMBER DEFAULT 8265
   ) RETURN MDSYS.SDO_GEOMETRY
   AS
   BEGIN
      -- Step 10
      -- Check over incoming parameters
      IF p_x IS NULL
      OR p_y IS NULL
      THEN
         RAISE_APPLICATION_ERROR(-20001,'x and y cannot be NULL');
      END IF;
      -- Step 20
      -- Do the simplest solution first
      IF  p_z IS NULL
      AND p_m IS NULL
      THEN
         RETURN SDO_GEOMETRY(
             2001
            ,p_srid
            ,SDO_POINT_TYPE(
                 p_x
                ,p_y
                ,NULL
            ,NULL
            ,NULL
      END IF;
      -- Step 30
      -- Do the other wilder choices
      IF p_z IS NULL
      AND p_m IS NOT NULL
      THEN
         RETURN SDO_GEOMETRY(
             3301
            ,p_srid
            ,SDO_POINT_TYPE(
                 p_x
                ,p_y
                ,p_m
            ,NULL
            ,NULL
      ELSIF p_z IS NOT NULL
      AND   p_m IS NULL
      THEN
         RETURN SDO_GEOMETRY(
             3001
            ,p_srid
            ,SDO_POINT_TYPE(
                 p_x
                ,p_y
                ,p_z
            ,NULL
            ,NULL
      ELSIF p_z IS NOT NULL
      AND   p_m IS NOT NULL
      THEN
         RETURN SDO_GEOMETRY(
             4401
            ,p_srid
            ,NULL
            ,SDO_ELEM_INFO_ARRAY(1,1,1)
            ,SDO_ORDINATE_ARRAY(p_x,p_y,p_z,p_m)
      ELSE
         RAISE_APPLICATION_ERROR(-20001,'ERR!');
      END IF;
   END fast_point;
   FUNCTION get_start_point(
      p_input        IN  MDSYS.SDO_GEOMETRY
   ) RETURN MDSYS.SDO_GEOMETRY
   AS
      int_dims PLS_INTEGER;
      int_gtyp PLS_INTEGER;
      int_lrs  PLS_INTEGER;
   BEGIN
      -- Step 10
      -- Check over incoming parameters
      IF p_input IS NULL
      THEN
         RETURN NULL;
      END IF;
      -- Step 20
      -- Gather information about the geometry
      int_dims := p_input.get_dims();
      int_gtyp := p_input.get_gtype();
      int_lrs  := p_input.get_lrs_dim();
      -- Step 30
      -- Handle point and multipoint inputs
      IF int_gtyp = 1
      THEN
         RETURN p_input;
      ELSIF int_gtyp = 5
      THEN
         RETURN SDO_UTIL.EXTRACT(p_input,1);
      END IF;
      -- Step 40
      -- Return results
      IF int_dims = 2
      THEN
         RETURN fast_point(
             p_input.SDO_ORDINATES(1)
            ,p_input.SDO_ORDINATES(2)
            ,NULL
            ,NULL
            ,p_input.SDO_SRID
      ELSIF  int_dims = 3
      AND int_lrs = 3
      THEN
         RETURN fast_point(
             p_input.SDO_ORDINATES(1)
            ,p_input.SDO_ORDINATES(2)
            ,NULL
            ,p_input.SDO_ORDINATES(3)
            ,p_input.SDO_SRID
      ELSIF  int_dims = 3
      AND int_lrs = 0
      THEN
         RETURN fast_point(
             p_input.SDO_ORDINATES(1)
            ,p_input.SDO_ORDINATES(2)
            ,p_input.SDO_ORDINATES(3)
            ,NULL
            ,p_input.SDO_SRID
      ELSIF  int_dims = 4
      AND int_lrs IN (4,0)
      THEN
         RETURN fast_point(
             p_input.SDO_ORDINATES(1)
            ,p_input.SDO_ORDINATES(2)
            ,p_input.SDO_ORDINATES(3)
            ,p_input.SDO_ORDINATES(4)
            ,p_input.SDO_SRID
      ELSIF  int_dims = 4
      AND int_lrs = 3
      THEN
         RETURN fast_point(
             p_input.SDO_ORDINATES(1)
            ,p_input.SDO_ORDINATES(2)
            ,p_input.SDO_ORDINATES(4)
            ,p_input.SDO_ORDINATES(3)
            ,p_input.SDO_SRID
      ELSE
         RAISE_APPLICATION_ERROR(-20001,'ERR!');
      END IF;
   END get_start_point;
   FUNCTION get_end_point(
      p_input        IN  MDSYS.SDO_GEOMETRY
   ) RETURN MDSYS.SDO_GEOMETRY
   AS
      int_dims PLS_INTEGER;
      int_gtyp PLS_INTEGER;
      int_lrs  PLS_INTEGER;
      int_len  PLS_INTEGER;
   BEGIN
      -- Step 10
      -- Check over incoming parameters
      IF p_input IS NULL
      THEN
         RETURN NULL;
      END IF;
      -- Step 20
      -- Gather information about the geometry
      int_dims := p_input.get_dims();
      int_gtyp := p_input.get_gtype();
      int_lrs  := p_input.get_lrs_dim();
      int_len  := p_input.SDO_ORDINATES.COUNT();
      -- Step 30
      -- Handle point and multipoint inputs
      IF int_gtyp = 1
      THEN
         RETURN p_input;
      ELSIF int_gtyp = 5
      THEN
         RETURN SDO_UTIL.EXTRACT(
             p_input
            ,SDO_UTIL.GETNUMELEM(p_input)
      END IF;
      -- Step 40
      -- Return results
      IF int_dims = 2
      THEN
         RETURN fast_point(
             p_input.SDO_ORDINATES(int_len - 1)
            ,p_input.SDO_ORDINATES(int_len)
            ,NULL
            ,NULL
            ,p_input.SDO_SRID
      ELSIF  int_dims = 3
      AND int_lrs = 3
      THEN
         RETURN fast_point(
             p_input.SDO_ORDINATES(int_len - 2)
            ,p_input.SDO_ORDINATES(int_len - 1)
            ,NULL
            ,p_input.SDO_ORDINATES(int_len)
            ,p_input.SDO_SRID
      ELSIF  int_dims = 3
      AND int_lrs = 0
      THEN
         RETURN fast_point(
             p_input.SDO_ORDINATES(int_len - 2)
            ,p_input.SDO_ORDINATES(int_len - 1)
            ,p_input.SDO_ORDINATES(int_len)
            ,NULL
            ,p_input.SDO_SRID
      ELSIF  int_dims = 4
      AND int_lrs IN (4,0)
      THEN
         RETURN fast_point(
             p_input.SDO_ORDINATES(int_len - 3)
            ,p_input.SDO_ORDINATES(int_len - 2)
            ,p_input.SDO_ORDINATES(int_len - 1)
            ,p_input.SDO_ORDINATES(int_len)
            ,p_input.SDO_SRID
      ELSIF  int_dims = 4
      AND int_lrs = 3
      THEN
         RETURN fast_point(
             p_input.SDO_ORDINATES(int_len - 3)
            ,p_input.SDO_ORDINATES(int_len - 2)
            ,p_input.SDO_ORDINATES(int_len)
            ,p_input.SDO_ORDINATES(int_len - 1)
            ,p_input.SDO_SRID
      ELSE
         RAISE_APPLICATION_ERROR(-20001,'ERR!');
      END IF;
   END get_end_point;
   FUNCTION is_spaghetti(
       p_input             IN  MDSYS.SDO_GEOMETRY
      ,p_tolerance         IN  NUMBER DEFAULT 0.05
   ) RETURN VARCHAR2
   AS
      num_tolerance    NUMBER := p_tolerance;
      ary_strings      MDSYS.SDO_GEOMETRY_ARRAY := MDSYS.SDO_GEOMETRY_ARRAY();
      ary_starts       MDSYS.SDO_GEOMETRY_ARRAY := MDSYS.SDO_GEOMETRY_ARRAY();
      ary_ends         MDSYS.SDO_GEOMETRY_ARRAY := MDSYS.SDO_GEOMETRY_ARRAY();
      int_count        PLS_INTEGER;
      ary_start_count  MDSYS.SDO_NUMBER_ARRAY := MDSYS.SDO_NUMBER_ARRAY();
      ary_end_count    MDSYS.SDO_NUMBER_ARRAY := MDSYS.SDO_NUMBER_ARRAY();
      ary_inside_count MDSYS.SDO_NUMBER_ARRAY := MDSYS.SDO_NUMBER_ARRAY();
   BEGIN
      -- Step 10
      -- Check over incoming parameters
      IF p_input IS NULL
      THEN
         RETURN NULL;
      ELSIF p_input.get_gtype = 2
      THEN
         RETURN 'FALSE';
      ELSIF p_input.get_gtype <> 6
      THEN
         RAISE_APPLICATION_ERROR(-20001,'input gtype must be 2 or 6');
      END IF;
      IF num_tolerance IS NULL
      THEN
         num_tolerance := 0.05;
      END IF;
      -- Step 20
      -- Break multistring into single linestrings with nodes
      int_count := SDO_UTIL.GETNUMELEM(p_input);
      ary_strings.EXTEND(int_count);
      ary_starts.EXTEND(int_count);
      ary_ends.EXTEND(int_count);
      ary_start_count.EXTEND(int_count);
      ary_end_count.EXTEND(int_count);
      ary_inside_count.EXTEND(int_count);
      FOR i IN 1 .. int_count
      LOOP
         ary_strings(i) := SDO_UTIL.EXTRACT(p_input,i);
         ary_starts(i)  := get_start_point(ary_strings(i));
         ary_ends(i)    := get_end_point(ary_strings(i));
      END LOOP;
      -- Step 30
      -- Loop through and count the nodes connections
      FOR i IN 1 .. int_count
      LOOP
         ary_start_count(i)  := 0;
         ary_end_count(i)    := 0;
         ary_inside_count(i) := 0;
         FOR j IN 1 .. int_count
         LOOP
            IF i != j
            THEN
               IF SDO_GEOM.RELATE(
                  ary_starts(i),
                  'DETERMINE',
                  ary_strings(j),
                  num_tolerance
               ) IN ('TOUCH','CONTAINS','COVERS','ON')
               THEN
                  ary_start_count(i) := ary_start_count(i) + 1;
               ELSIF SDO_GEOM.RELATE(
                  ary_ends(i),
                  'DETERMINE',
                  ary_strings(j),
                  num_tolerance
               ) IN ('TOUCH','CONTAINS','COVERS','ON')
               THEN
                  ary_end_count(i) := ary_end_count(i) + 1;
               ELSIF SDO_GEOM.RELATE(
                  ary_strings(i),
                  'DETERMINE',
                  ary_strings(j),
                  num_tolerance
               ) IN ('TOUCH','CONTAINS','COVERS','OVERLAPBYINTERSECT')
               THEN
                  ary_inside_count(i) := ary_inside_count(i) + 1;
               END IF;
            END IF;
         END LOOP;
         IF ary_start_count(i) > 1
         OR ary_end_count(i) > 1
         OR ary_inside_count(i) > 0
         THEN
            RETURN 'TRUE';
         END IF;
      END LOOP;
      RETURN 'FALSE';
   END is_spaghetti;
   FUNCTION points2segment(
       p_point_one              IN  MDSYS.SDO_POINT_TYPE
      ,p_point_two              IN  MDSYS.SDO_POINT_TYPE
      ,p_srid                   IN  NUMBER
   ) RETURN MDSYS.SDO_GEOMETRY
   AS
   BEGIN
      IF ( p_point_one.Z IS NULL AND p_point_two.Z IS NOT NULL )
      OR ( p_point_one.Z IS NOT NULL AND p_point_two.Z IS NULL )
      THEN
         RAISE_APPLICATION_ERROR(
            -20001,
            'both points must have the same number of dimensions, point_one Z is ' ||
            NVL(TO_CHAR(p_point_one.Z),'') ||
            ' and point_two Z is ' ||
            NVL(TO_CHAR(p_point_two.Z),'')
      END IF;
      IF p_point_one.Z IS NULL
      THEN
         RETURN SDO_GEOMETRY(
             2002
            ,p_srid
            ,NULL
            ,SDO_ELEM_INFO_ARRAY(1,2,1)
            ,SDO_ORDINATE_ARRAY(p_point_one.X,p_point_one.Y,p_point_two.X,p_point_two.Y)
      ELSE
         RETURN SDO_GEOMETRY(
             3002
            ,p_srid
            ,NULL
            ,SDO_ELEM_INFO_ARRAY(1,2,1)
            ,SDO_ORDINATE_ARRAY(p_point_one.X,p_point_one.Y,p_point_one.Z,p_point_two.X,p_point_two.Y,p_point_two.Z)
      END IF;
   END points2segment;
   FUNCTION points2segment(
       p_point_one              IN  MDSYS.SDO_GEOMETRY
      ,p_point_two              IN  MDSYS.SDO_GEOMETRY
   ) RETURN MDSYS.SDO_GEOMETRY
   AS
      int_gtype1 PLS_INTEGER;
      int_dims1  PLS_INTEGER;
      int_gtype2 PLS_INTEGER;
      int_dims2  PLS_INTEGER;
      point_one  MDSYS.SDO_POINT_TYPE;
      point_two  MDSYS.SDO_POINT_TYPE;
   BEGIN
      int_gtype1 := p_point_one.get_gtype();
      int_dims1  := p_point_one.get_dims();
      int_gtype2 := p_point_two.get_gtype();
      int_dims2  := p_point_two.get_dims();
      IF  int_gtype1 = 1
      AND int_gtype2 = 1
      AND int_dims1  = int_dims2
      AND p_point_one.SDO_SRID = p_point_two.SDO_SRID
      THEN
         NULL;  -- Good
      ELSE
         RAISE_APPLICATION_ERROR(
             -20001
            ,'both point objects must be points and have the same number of dimensions and SRIDs'
      END IF;
      IF int_dims1 = 4
      THEN
         RETURN SDO_GEOMETRY(
             4402
            ,p_point_one.SDO_SRID
            ,NULL
            ,SDO_ELEM_INFO_ARRAY(1,2,1)
            ,SDO_ORDINATE_ARRAY(
                 p_point_one.SDO_ORDINATES(1)
                ,p_point_one.SDO_ORDINATES(2)
                ,p_point_one.SDO_ORDINATES(3)
                ,p_point_one.SDO_ORDINATES(4)
                ,p_point_two.SDO_ORDINATES(1)
                ,p_point_two.SDO_ORDINATES(2)
                ,p_point_two.SDO_ORDINATES(3)
                ,p_point_two.SDO_ORDINATES(4)
      ELSE
         -- Use the sdo_point_type method for the rest
         IF p_point_one.SDO_POINT IS NOT NULL
         THEN
            point_one := p_point_one.SDO_POINT;
         ELSE
            IF int_dims1 = 3
            THEN
               point_one := SDO_POINT_TYPE(
                   p_point_one.SDO_ORDINATES(1)
                  ,p_point_one.SDO_ORDINATES(2)
                  ,p_point_one.SDO_ORDINATES(3)
            ELSE
               point_one := SDO_POINT_TYPE(
                   p_point_one.SDO_ORDINATES(1)
                  ,p_point_one.SDO_ORDINATES(2)
                  ,NULL
            END IF;
         END IF;
         IF p_point_two.SDO_POINT IS NOT NULL
         THEN
            point_two := p_point_two.SDO_POINT;
         ELSE
            IF int_dims1 = 3
            THEN
               point_two := SDO_POINT_TYPE(
                    p_point_two.SDO_ORDINATES(1)
                   ,p_point_two.SDO_ORDINATES(2)
                   ,p_point_two.SDO_ORDINATES(3)
            ELSE
               point_two := SDO_POINT_TYPE(
                   p_point_two.SDO_ORDINATES(1)
                  ,p_point_two.SDO_ORDINATES(2)
                  ,NULL
            END IF;
         END IF;
         RETURN points2segment(
             p_point_one   => point_one
            ,p_point_two   => point_two
            ,p_srid        => p_point_one.SDO_SRID
      END IF;
   END points2segment;
   FUNCTION linear_gap_filler(
       p_input            IN  MDSYS.SDO_GEOMETRY
      ,p_tolerance        IN  NUMBER DEFAULT 0.05
   ) RETURN MDSYS.SDO_GEOMETRY
   AS
      sdo_input     MDSYS.SDO_GEOMETRY := p_input;
      num_tolerance NUMBER;
      int_counter   PLS_INTEGER;
      ary_edges     MDSYS.SDO_GEOMETRY_ARRAY;
      ary_starts    MDSYS.SDO_GEOMETRY_ARRAY;
      ary_ends      MDSYS.SDO_GEOMETRY_ARRAY;
      ary_nearest   MDSYS.SDO_NUMBER_ARRAY;
      ary_distance  MDSYS.SDO_NUMBER_ARRAY;
      num_temp      NUMBER;
      num_nearest   NUMBER;
      int_winner    PLS_INTEGER;
      int_winner2   PLS_INTEGER;
      sdo_point1    MDSYS.SDO_GEOMETRY;
      sdo_point2    MDSYS.SDO_GEOMETRY;
      boo_done      BOOLEAN;
      num_one       NUMBER;
      num_two       NUMBER;
      int_looper    PLS_INTEGER := 1;
   BEGIN
      -- Step 10
      -- Check over incoming parameters
      IF num_tolerance IS NULL
      THEN
         num_tolerance := 0.05;
      END IF;
      IF sdo_input IS NULL
      OR sdo_input.get_gtype() <> 6
      THEN
         RETURN sdo_input;
      END IF;
      IF is_spaghetti(sdo_input,p_tolerance) = 'TRUE'
      THEN
         RETURN sdo_input;
      END IF;
      <>      ary_edges     := MDSYS.SDO_GEOMETRY_ARRAY();
      ary_starts    := MDSYS.SDO_GEOMETRY_ARRAY();
      ary_ends      := MDSYS.SDO_GEOMETRY_ARRAY();
      ary_nearest   := MDSYS.SDO_NUMBER_ARRAY();
      ary_distance  := MDSYS.SDO_NUMBER_ARRAY();
      -- Step 20
      -- Break multistring into edges and start and end nodes
      int_counter := SDO_UTIL.GETNUMELEM(sdo_input);     
      ary_edges.EXTEND(int_counter);
      ary_starts.EXTEND(int_counter);
      ary_ends.EXTEND(int_counter);
      FOR i IN 1 .. int_counter
      LOOP 
         ary_edges(i)  := SDO_UTIL.EXTRACT(sdo_input,i);
         ary_starts(i) := get_start_point(ary_edges(i));
         ary_ends(i)   := get_end_point(ary_edges(i));
      END LOOP;
      -- Step 30
      -- Determine the closest endpoints
      ary_nearest.EXTEND(int_counter);
      ary_distance.EXTEND(int_counter);
      FOR i IN 1 .. int_counter
      LOOP
         num_nearest := NULL;
         int_winner := NULL;
         FOR j IN 1 .. int_counter
         LOOP
            IF j != i
            THEN
               num_temp := SDO_GEOM.SDO_DISTANCE(
                   ary_edges(i)
                  ,ary_edges(j)
                  ,num_tolerance
               IF num_nearest IS NULL
               OR num_temp < num_nearest
               THEN
                  num_nearest := num_temp;
                  int_winner := j;
               END IF;
            END IF;
         END LOOP;
         ary_nearest(i) := int_winner;
         ary_distance(i) := num_nearest;
      END LOOP;
      -- Step 40
      -- Find the smallest gap
      int_winner := NULL;
      num_nearest := NULL;
      FOR i IN 1 .. int_counter
      LOOP
         IF num_nearest IS NULL
         OR ary_distance(i) < num_nearest
         THEN
             int_winner := i;
             num_nearest := ary_distance(i);
             int_winner2 := ary_nearest(i);
         END IF;
      END LOOP;
      -- Step 50
      -- Determine the endpoints to connect
      num_one := SDO_GEOM.SDO_DISTANCE(
         get_start_point(ary_edges(int_winner)),
         ary_edges(int_winner2),
         num_tolerance
      num_two := SDO_GEOM.SDO_DISTANCE(
         get_end_point(ary_edges(int_winner)),
         ary_edges(int_winner2),
         num_tolerance
      IF ( num_one = 0 AND SDO_GEOM.RELATE(
         get_start_point(ary_edges(int_winner)),
         'ANYINTERACT',
         ary_edges(int_winner2),
         num_tolerance
      ) = 'TRUE' )
      OR ( num_two = 0 AND SDO_GEOM.RELATE(
         get_end_point(ary_edges(int_winner)),
         'ANYINTERACT',
         ary_edges(int_winner2),
         num_tolerance
      ) = 'TRUE' )
      THEN
         sdo_point1 := NULL;
      ELSIF num_one < num_two
      THEN
         sdo_point1 := get_start_point(ary_edges(int_winner));
      ELSE
         sdo_point1 := get_end_point(ary_edges(int_winner));
      END IF;
      num_one := SDO_GEOM.SDO_DISTANCE(
         get_start_point(ary_edges(int_winner2)),
         ary_edges(int_winner),
         num_tolerance
      num_two := SDO_GEOM.SDO_DISTANCE(
         get_end_point(ary_edges(int_winner2)),
         ary_edges(int_winner),
         num_tolerance
      IF ( num_one = 0 AND SDO_GEOM.RELATE(
         get_start_point(ary_edges(int_winner2)),
         'ANYINTERACT',
         ary_edges(int_winner),
         num_tolerance
      ) = 'TRUE' )
      OR ( num_two = 0 AND SDO_GEOM.RELATE(
         get_end_point(ary_edges(int_winner2)),
         'ANYINTERACT',
         ary_edges(int_winner),
         num_tolerance
      ) = 'TRUE' )
      THEN
         sdo_point2 := NULL;
      ELSIF num_one < num_two
      THEN
         sdo_point2 := get_start_point(ary_edges(int_winner2));
      ELSE
         sdo_point2 := get_end_point(ary_edges(int_winner2));
      END IF;
      -- Step 50
      -- Smash together
      IF sdo_point1 IS NULL
      OR sdo_point2 IS NULL
      THEN
         sdo_input := SDO_UTIL.CONCAT_LINES(
            ary_edges(int_winner),
            ary_edges(int_winner2)
      ELSE
         sdo_input := SDO_UTIL.CONCAT_LINES(
            SDO_UTIL.CONCAT_LINES(
               ary_edges(int_winner),
               points2segment(sdo_point1,sdo_point2)
            ary_edges(int_winner2)
      END IF;
      boo_done := TRUE;
      FOR i IN 1 .. int_counter
      LOOP
         IF i NOT IN (int_winner,int_winner2)
         THEN
            sdo_input := SDO_UTIL.APPEND(sdo_input,ary_edges(i));
            boo_done := FALSE;
         END IF;
      END LOOP;
      -- Step 60
      -- Check if valid if returning
      IF sdo_input.get_gtype() = 2
      OR boo_done = TRUE
      THEN
         RETURN sdo_input;
      END IF;
      int_looper := int_looper + 1;
      GOTO TOP_OF_IT;
   END linear_gap_filler;
END dz_gap_fill;

Similar Messages

  • How to preserve data when converting a Standard DSO into a Write Optimized

    Hi,
    I'm looking for proven strategies for preserving data when converting a standard DSO into a write optimized DSO. The data has to be dropped before the new DSO is transported into the environment.
    1. The DSO is currently in synch with a cube,
    2. The PSA does not have all the data which is in the DSO.
    3. Data volume is incredibly high for a full reload from ECC, so we'd like to avoid that option.
    Appreciate any help!

    Hi Gregg,
    have you considered just deleting the data? I know that sounds simple, but it might be a valid solution.
    If the DSO is just receiving new data (e.g. FI documents), you can continue to deliver a logically correct delta to the cube.
    Should that not be possible and you really want all data that you currently have in your DSO1 in the write optimized future of it, then how about this:
    - Create a new DSO2 same structure as DSO1
    - Load all data into that
    - Delete all data from your DSO1 and import the transport to make it write optimized
    - Load all data back into you now write optimized DSO1 from DSO2
    The problem you have then, is that all data that you have already loaded into your cube is due to be delivered as a delta from DSO1 again.
    Depending on your transformation / update rules that might or might not be a problem.
    Best,
    Ralf

  • How deactivate Web premium CS4 when I can't get into my old computer (crashed)?

    Hi,
    At Adobe's website it says:
    "What happens if my computer is stolen or damaged and cannot be repaired?
    If your computer is stolen, damaged beyond repair or the hard drive is completely re-imaged, the activation will be lost. In either case you can install and start using the Adobe product on your new computer, which will automatically detect the problem if you already had two computers activated. The activation process will guide you through the new activation, even if the prior computer is no longer available."
    My computer has crashed but Adobe has not detected this, so I can't install my program on my new computer. What do I do?
    Thank you for answering! :-)
    //Milda

    Hi!
    There was no problem installing it on my new computor, but it says that i have to deactivate my earlier installation (within 30 days) since i have already installed it on two compters (i need to have the program on both my lap top and my stationary computer)
    Milda
    Skickat från min iPhone
    7 jun 2012 kl. 14:07 skrev "Bob Levine" <[email protected]<mailto:[email protected]>>:
    Re: How deactivate Web premium CS4 when I can't get into my old computer (crashed)?
    created by Bob Levine<http://forums.adobe.com/people/BobLevine> in Creative Suites Windows - View the full discussion<http://forums.adobe.com/message/4472862#4472862

  • Having problems with adobe color engine when converting a 32bit file into an 8bit in Photoshop CC.

    I'm having problems with the "adobe color engine" when converting a 32bit file into an 8bit.
    Error Message reads: "could not convert the image to 8 bit/channel because of a problem using the adobe color engine.
    Never had this problem before, just recently started happening! I've tried multiply files since and some work, some don't, can't work out why!? thought it might be due to a large file size?...any suggestions?

    That would require much more info about your files, your system and the version of PS you are using. Presumably there is some color profile issue at play here.
    Mylenium

  • How to avoid the dialogue when converting from context menu

    This is a follow-up to http://forums.adobe.com/message/2016146#443364 which was locked due to a bug.
    i would like to know how i can avoid the 'save as' dialogue when using the context menu to convert a word file to pdf using windows XP/acrobat 8/word 2007.
    so far, it always prompts me for the filename, which is annoying as it does not allow me to batch-convert several files and let the thing run its course.
    the solution provided by Steve in the other thread does not work - even if the plugin from word does not propt for a filename, it still does when triggered from explorer/context menu.
    so back to square one: how to avoid that dialogue when not opening word at all?
    cheers, thanks for any help. michael

    For a permanent change, START>PRINTERS>right click on Adobe PDF printer and select properties>General>Printing Preferences>Adobe PDF Settings. Under the settings tab, uncheck the box related to asking for a name. Pretty sure that is the location, but it may vary with version.

  • How to maintain original lines when converting a word file in a PDF

    Unfortunately the table lines often change when converting a word file in a PDF, e.g. dotted/broken lines into straight lines or different kinds of broken lines. How can I maintain the original lines when converting the documents?
    Many thanks in advance for your advice.
    Li Li

    Hello,
    Ok, this is the background.
    I’m a publisher. Any document to end user will go as pdf. And off course it preserves the word appearance. We ship our manuals only in pdf.  At this point my end users have to copy the “CODES” into his editor to run the product.  So when doing it, the “Codes” copied from pdf to his editor loses its format.  Editor need not be the actual one; you can also test in a notepad.
    P.S: You can find the difference by copying the code from word to notepad and pdf to notepad
    Hope you now understood the purpose what I’m looking at for.

  • How to preserve original size when converting to PDF in Preview.

    I'm using Preview in Snow Leopard.
    Trying to create multipage PDFs from document scans.
    I'm finding that when the scanned image (tiff, png, jpg) is converted to PDF in Preview the size reduces.
    Selecting 'View actual size' shows the image with sometimes drastically impaired quality.
    This does not always happen. I have some images that stay the same size and quality.
    What factors cause this reduction in size in some images but not in others?
    I'm not sure but this could be only images that have been scanned by me. If so, what do I need to do to prevent the problem?
    These are not large images, just standard size pages.
    I have all the preferences to view at 100%
    This is not for printing, only for viewing on-screen.

    Please!!
    I'm not silly...
    As I said, selecting View actual size shows the image with sometimes drastically impaired quality (regardless of the window size).
    I also said I have preferences set to view at 100%
    It now seems as if this is only happening with scans I've made here.
    Images downloaded from the internet are converting indentically, no problem. But my scans are being resized when converting.
    I wonder if anyone with a bit of technical know-how can give me some clues as to why this is happening. It would seem to be something to do with the file itself.
    (There was another post on here with the same problem but for some reason its been 'archived' though the last posting was this month and the query was not answered. So I've posted the question again.)

  • How to preserve embedded artwork when converting to AAC 128kbps for iPod?

    Hi
    I am using the new 'convert higher bit rate songs to 128 kbps ACC' option in iTunes 9.1.1 (12). All of my artwork is embedded in Apple Lossless files, but on conversion to AAC for the iPod this embedded artwork gets stripped out of the file. Instead I am getting about 12 ithmb files in the iPod_Control/Artwork/ folder totalling about 6GB which probably corresponds to all the embedded artwork for all the tracks, i.e. 20000 tracks x 300KB = 6GB, and an ArtworkDB file, which presumably is for CoverFlow.
    Because I use PodWorks to backup my iPod Music to my Mac I would like all of the artwork to stay embedded in the AAC files, so that it gets uploaded to the Mac. Artwork stays embedded when you make an AAC version of an Apple Lossless track in iTunes normally, but not it would seem when transferring to the iPod. And if this new method of encoding on the fly to the iPod can't preserve embedded artwork then it makes little sense to clog up the iPod with 6GB of artwork!
    I am wondering if there is any setting I am missing to get this working, or if this is something Apple still need to get around to sorting,
    Thanks
    Nick

    Please!!
    I'm not silly...
    As I said, selecting View actual size shows the image with sometimes drastically impaired quality (regardless of the window size).
    I also said I have preferences set to view at 100%
    It now seems as if this is only happening with scans I've made here.
    Images downloaded from the internet are converting indentically, no problem. But my scans are being resized when converting.
    I wonder if anyone with a bit of technical know-how can give me some clues as to why this is happening. It would seem to be something to do with the file itself.
    (There was another post on here with the same problem but for some reason its been 'archived' though the last posting was this month and the query was not answered. So I've posted the question again.)

  • How to fix color shift when converting ProPhoto rgb to srgb IE61966-2.1

    How do I fix the color shift when converting my photos in photoshop to srgb for the web. I work in lightroom color space prophoto rgb and after editing in photoshop I convert it over but I get a shift in the colors. Thanks

    are you working in 16-bit (ProPhotoRGB, you probably should be)
    exactly how are you doing the Conversion
    MAKE SURE YOU ARE NOT CONVERTING ANY ADJUSTMENT LAYERS (flatten or merge them before convert)
    AND MAKE SURE YOU ARE VIEWING THE PROBLEM AREA AT 100% ACTUAL PIXELS when you do the convert

  • How to keep Korean fonts when converting .pages file to .epub file

    Hi, I am also asking about embedding Korean fonts other than English when converting .pages file to .epub file.
    I really like to use application for Mac in order to make certain file format for e-books though there seems to be some problem that should be improved.
    Please answer to my question and help me to find the best way to make .epub file with Mac.
    37Fides

    You should have no problem keeping your text in Korean when you convert to .epub from .pages.  Are  you saying that the Korean is converted to something else?   Please provide more details about what is not working the way you want.
    Pages can't embed fonts, you would have to use another app.  But there is no need to embed fonts to create Korean books.

  • How to add one item when another item get added into the iProcurement Cart

    Hi,
    Please help me to do the following customization in iProcurement Cart:
    Requirement-1:
    1. Login to iProcurement and add one Item ITEM1 to Cart.
    2. Make another Item ITEM2 mandatory or get added automatically when Item ITEM1 gets added into the iProcurement Cart
    OR
    Requirement-2:
    1. Login to iProcurement and add one Item ITEM1 to Cart.
    2. Go to Cart and click Checkout.
    3. While checking out Item ITEM1, we need some validation to make another Item ITEM2 mandatory or get added automatically with Item ITEM1.
    Thanks in Advance,
    SB

    Hi tiff512:
    The way is:
    SAP NetWeaver > General Settings > Check Units of Measurement.
    The help documentation says the following in relation to the creation of new units of measure:
    "If required, define new units of measurement according to the international system of units (SI) with the menu function Unit of meaurement -> Create.
    Here you have to make make specifications for:
    Display (including a descriptive Units of measurement text)
    Conversion (not applicable to units of measurement without dimensions)
    Data exchange (EDI) (optional)
    Application parameters"
    I hope it is helpful to you.
    Regards,
    David

  • How can I fill gaps in timeline PrE12?

    I am at my wits' end.
    I have a rather complicated project (instructional video) with native audio, sound track, Vid track with numerous short clips, freeze frames and color mattes, plus many titles of varying lengths.
    I discovered that a couple of the titles were too short--so I made them longer (from 6 sec to 10 sec).
    I then discovered that PrE12 had decided to cut the soundtrack, the native audio and the Vid track and slide everything to the right along the timeline, leaving 4 second black holes to correspond to the increased length of the titles I changed.  (I didn't see this when it was happening due to lack of vertical viewing area.
    OK, fine, click on a black hole and hit backspace.  It worked.  Go on the the next one.  Nada.  Click the stubborn black hole again and hit Delete.  Nada.  Right click the black hole and do a Delete and Close Gap.  Grayed out.
    OK, plan B: painstakingly select all the many clips to the right of the black hole in the Vid track, Group them, and slide left.  Being sure that they weren't Grouped or Linked to anything else.  (This was due to the one gap successfully being closed in the Vid track only, thus leaving an imbalance among the tracks--the Vid track with one less black hole than all the others.
    Result: everything on every other track slides all the way to the right, past the end of the Vid track.
    So now I have an unbroken Vid track and all the other tracks in two pieces separated by a huge gap.
    Undo.  Try adding a blank track in between.  Same result.  Try Un-enabling all the stuff I don't want to affect.  Same result.
    So here I am with a total mess.  I can of course use History to get back to the status quo ante but that doesn't solve the problem of how to increase the duration of a couple of clips (in this case Titles, but the problem is there no matter what track or type of media I'm working with) without everything else moving around.
    I can't believe that a program could be this poorly designed; there has to be a way to do this.  "This" being the addition of a bit of duration to a couple of clips without trashing all the other tracks.
    All ideas gratefully accepted.

    How do I do that?  Don't see any option for it.
    Thanks. Never mind--I'll try the camera icon.
    1. Timeline after adding items--sound track is chopped up.  Other tracks will be chopped up as well.  Sound track is not grouped with or linked to anything else.
    2. Slide sound track clip to left to fill the gap--this pushes everything else all the way to the right.  (Scale is reduced to enable effect to be seen.)
    The same thing happens, as described above, with titles--make them longer, gaps appear in the other tracks.  Slide a clip to the left to close the gap, everything else jumps all the way to the right.
    Insanity-producing.
    Message was edited by: Kawika808 - added screenshots.

  • How to handle tab stops when converting from Frame to RoboHelp

    I have several examples of programming code that have tabulated indentations in the FrameMaker documents I have inherited.
    But when I convert to RoboHelp, the tab stop is only recognized by a single space.
    What would be the best way to deal with this? There are so many examples, and sometimes there can be multiple levels.
    Remember, all these manuals have already been written in Framemaker, so the less I have to manipulate these samples, the better!
    Thanks 

    Did anyone from Adobe get back to you on this bug?
    Now that TCS3 is out there, did they fix it?
    Do you know how we can find out the status of this and other issues with Adobe?
    We have been very disappointed with TCS2 and if Adobe hasn't fixed known issues from that version, I wonder if they will in TCS3...or ever? Flare is looking pretty good at this point.
    Missy

  • How to maintain line size when converting word2007 to PDF?

    I use border and shading to make lines. When I converted, the line size just randomly change. The file looks really bad. I have tried lots of PDF printer softweare, but it keeps same problem. Does anyone know how to solve it?

    Hi Jenny,
    Please try changing following Preference Setting.
    Go to Edit -> Preferences -> Page Display -> Check "Enhance thin lines"
    Regards,
    Anoop

  • Gradient fill disappearing when converting vector/Illustrator file to shape layer

    Hi,
    When coverting a vector or Illustrator file (such as a logo) into a shape layer any gradient fill is lost. Is there no way to ensure the gradient fill is converted across or is this a matter for a future release of After Effects?
    Many thanks.

    That's a limitation of the current feature.
    If you want a different behavior, you can submit a feature request here: http://www.adobe.com/go/wish

Maybe you are looking for