Advertisement
Guest User

Untitled

a guest
Jun 5th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE PROCEDURE mia_media_flat
  2. IS
  3. BEGIN
  4.     INSERT INTO media_flat(media_id)
  5.     SELECT media_id
  6.     FROM media
  7.     WHERE media_id NOT IN (SELECT media_id FROM media_flat));
  8. END;
  9.  
  10. /
  11.  
  12. CREATE OR REPLACE PROCEDURE set_media_flat
  13. IS
  14.     tabl VARCHAR2(255);
  15.     temp VARCHAR2(4000);
  16.     sep VARCHAR2(4);
  17.     rel VARCHAR2(4000);
  18.     rel_val VARCHAR2 (4000);
  19.     l VARCHAR2(4000);
  20.     l_value VARCHAR2 (4000);
  21.     dec_latlong VARCHAR2(255);
  22.  
  23. BEGIN
  24.     FOR m IN (
  25.         SELECT media_id
  26.         FROM media_flat
  27.         WHERE (lastdate IS NULL OR ((SYSDATE - lastdate) > 1))
  28.         AND ROWNUM <= 2000
  29.     ) LOOP
  30.         temp := '';
  31.         sep: '';  
  32.         rel :='';
  33.         rel_val := '';
  34.         l := '';
  35.         l_value := '';
  36.         dec_latlong  := '';
  37.  
  38.         FOR r IN (
  39.             SELECT media_relationship, related_primary_key
  40.             FROM media_relations
  41.             WHERE media_id = m.media_id
  42.             AND media_relationship NOT IN (
  43.                 'created by agent')
  44.         ) LOOP
  45.             tabl := SUBSTR(r.media_relationship, INSTR(r.media_relationship, ' ', -1) + 1);
  46.  
  47.             IF LENGTH(rel) > 0 THEN
  48.                 rel := rel || '; ' || r.media_relationship;
  49.             ELSE
  50.                 rel := r.media_relationship;
  51.             END IF;
  52.  
  53.             IF LENGTH(rel) > 0 THEN
  54.                 rel_value:= rel_value|| '; ' || r.related_primary_key;
  55.             ELSE
  56.                 rel_value:= r.related_primary_key;
  57.             END IF;
  58.            
  59.             CASE tabl
  60.                 WHEN 'collecting_event' THEN
  61.                     SELECT dec_lat || '; ' || dec_long INTO dec_latlong
  62.                     FROM collecting_event, lat_long
  63.                     WHERE collecting_event.collecting_event_id=r.related_primary_key
  64.                         AND collecting_event.locality_id=lat_long.locality_id;              
  65.                 ELSE
  66.                     NULL;
  67.             END CASE;
  68.  
  69.  
  70.         END LOOP;
  71.        
  72.         FOR r IN (
  73.             SELECT media_label, label_values
  74.             FROM media_labels
  75.             WHERE media_id = m.media_id
  76.         ) LOOP
  77.            
  78.             IF LENGTH (l) > 0 THEN
  79.                 l := l || '; ' || r.media_label;
  80.             ELSE
  81.                 l := r.media_label;
  82.             END IF;
  83.            
  84.             IF LENGTH (l_value) > 0 THEN
  85.                 l_value := l_value || ' ; ' || r.label_value;
  86.             ELSE
  87.                 l_value := r.label_value;
  88.             END IF;
  89.            
  90.         END LOOP;
  91.        
  92.         UPDATE media_flat
  93.         SET media_relationships = TRIM(rel),
  94.                 related_primary_keys= TRIM(rel_value),
  95.                 media_labels = TRIM (l),
  96.                 label_values = TRIM(l_value),
  97.                 lat_long = TRIM (dec_latlong);
  98.                 lastdate = SYSDATE
  99.         WHERE media_id = m.media_id;
  100.  
  101.     END LOOP;
  102. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement