Advertisement
Guest User

Untitled

a guest
Aug 10th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 8.07 KB | None | 0 0
  1. --#########################################################################################################################--
  2. --#########################################################################################################################--
  3. --
  4. -- KALS_APPLE_IDS_FROM_API.sql
  5. -- RUN THESE STATEMENTS ONCE EACH MONTH, ONCE THE ITUNES BATCHES ARE LOADED.
  6. --
  7. --#########################################################################################################################--
  8. --#########################################################################################################################--
  9.  
  10.  
  11. DELETE TEMP_TC;
  12.  
  13. INSERT INTO TEMP_TC
  14.    SELECT DISTINCT   RECORDING_SENDER_ID
  15.    FROM              ROYALTIES, ROYALTIES_ORIGINAL_DATA
  16.    WHERE             ROYALTIES.ID = ROYALTIES_ORIGINAL_DATA.ID
  17.    AND               EXP_VERSION_ID IS NULL
  18.    AND               ROYALTIES.BATCH_ID IN ( 'BCH3184063', 'BCH3184321', 'BCH3184322', 'BCH3184323', 'BCH3183544', 'BCH3183822',
  19.                                              'BCH3183542', 'BCH3183540', 'BCH3183539', 'BCH3183538', 'BCH3183537', 'BCH3183536',
  20.                                              'BCH3183535', 'BCH3183534', 'BCH3183820', 'BCH3183821', 'BCH3183533', 'BCH3183532',
  21.                                              'BCH3183531', 'BCH3183530', 'BCH3183516', 'BCH3183529', 'BCH3183515', 'BCH3183513',
  22.                                              'BCH3183526', 'BCH3183525', 'BCH3183524', 'BCH3183512', 'BCH3183511', 'BCH3183523',
  23.                                              'BCH3183679', 'BCH3183680', 'BCH3183701', 'BCH3183702', 'BCH3183703', 'BCH3183704',
  24.                                              'BCH3183705', 'BCH3183706', 'BCH3183509', 'BCH3184324', 'BCH3184325', 'BCH3184326',
  25.                                              'BCH3184327', 'BCH3184328', 'BCH3184329', 'BCH3184330', 'BCH3184331', 'BCH3184332',
  26.                                              'BCH3184333', 'BCH3184334', 'BCH3184335', 'BCH3184336', 'BCH3183480', 'BCH3183479',
  27.                                              'BCH3183478', 'BCH3183497', 'BCH3183496', 'BCH3183477', 'BCH3183476', 'BCH3183816',
  28.                                              'BCH3183492', 'BCH3183491', 'BCH3183489', 'BCH3183488', 'BCH3183486', 'BCH3183484',
  29.                                              'BCH3183483', 'BCH3183482', 'BCH3183481', 'BCH3183460', 'BCH3183459', 'BCH3183458',
  30.                                              'BCH3183457', 'BCH3183456', 'BCH3183454', 'BCH3183475', 'BCH3183474', 'BCH3183452',
  31.                                              'BCH3183472', 'BCH3183451', 'BCH3183450', 'BCH3183449', 'BCH3183448', 'BCH3183447',
  32.                                              'BCH3183471', 'BCH3183470', 'BCH3183469', 'BCH3183468', 'BCH3183467', 'BCH3183466',
  33.                                              'BCH3183464', 'BCH3183463', 'BCH3183324', 'BCH3183322', 'BCH3183299', 'BCH3183298',
  34.                                              'BCH3183297', 'BCH3183296', 'BCH3183295', 'BCH3183294', 'BCH3183293', 'BCH3183292',
  35.                                              'BCH3183291', 'BCH3183289', 'BCH3183288', 'BCH3183287', 'BCH3183285', 'BCH3183257',
  36.                                              'BCH3183256', 'BCH3183255', 'BCH3183254', 'BCH3183283', 'BCH3183674', 'BCH3183675',
  37.                                              'BCH3183280', 'BCH3183279', 'BCH3183278', 'BCH3183277', 'BCH3183276', 'BCH3183246',
  38.                                              'BCH3183245', 'BCH3183274', 'BCH3183273', 'BCH3183271', 'BCH3183269', 'BCH3183268',
  39.                                              'BCH3183267', 'BCH3183266', 'BCH3183243', 'BCH3183242', 'BCH3183265', 'BCH3183264',
  40.                                              'BCH3183263', 'BCH3183262', 'BCH3183261', 'BCH3183240', 'BCH3183239', 'BCH3183238',
  41.                                              'BCH3183241', 'BCH3183236', 'BCH3183234', 'BCH3183233', 'BCH3183232', 'BCH3183231',
  42.                                              'BCH3183230', 'BCH3183229', 'BCH3183226', 'BCH3183225', 'BCH3183224', 'BCH3183223',
  43.                                              'BCH3183222', 'BCH3183221', 'BCH3183220', 'BCH3183179', 'BCH3183178', 'BCH3183218',
  44.                                              'BCH3183643', 'BCH3183493', 'BCH3183707', 'BCH3183708', 'BCH3183709', 'BCH3183710',
  45.                                              'BCH3183465', 'BCH3183180', 'BCH3183991', 'BCH3183990', 'BCH3183989', 'BCH3183988',
  46.                                              'BCH3183987', 'BCH3183986', 'BCH3183985', 'BCH3183543', 'BCH3183824', 'BCH3183825',
  47.                                              'BCH3183541', 'BCH3183971', 'BCH3183972', 'BCH3183973', 'BCH3183974', 'BCH3183975',
  48.                                              'BCH3183976', 'BCH3183977', 'BCH3183978', 'BCH3183979', 'BCH3183514', 'BCH3183819',
  49.                                              'BCH3183487', 'BCH3183485', 'BCH3183453', 'BCH3183323', 'BCH3183300', 'BCH3183969',
  50.                                              'BCH3183970', 'BCH3183286', 'BCH3183272', 'BCH3183270', 'BCH3183237', 'BCH3183517',
  51.                                              'BCH3183490', 'BCH3183826', 'BCH3183827', 'BCH3183828', 'BCH3183455', 'BCH3183446',
  52.                                              'BCH3183290', 'BCH3183275', 'BCH3183219', 'BCH3183527', 'BCH3183817', 'BCH3183818',
  53.                                              'BCH3183473', 'BCH3183284', 'BCH3183235' )
  54.    MINUS
  55.    SELECT DISTINCT   TO_CHAR(TRACK_ID)
  56.    FROM              KALS_APPLE_TRACK_TO_PRODUCT_ID;
  57.  
  58. COMMIT;
  59.  
  60. DELETE FROM    TEMP_TC
  61. WHERE          X IS NULL;
  62.  
  63. DELETE FROM    KALS_APPLE_TRACK_TO_PRODUCT_ID
  64. WHERE          PRODUCT_ID IS NULL;
  65.  
  66. COMMIT;
  67.  
  68. -----------------------------------------------------------------------------------------------------------------------------
  69. -----------------------------------------------------------------------------------------------------------------------------
  70. -- RUN THESE STATEMENTS ONLY AFTER THOSE ABOVE HAVE BEEN DONE. YOU MAY NEED TO RUN IT SEVERAL TIMES.
  71.  
  72. SET SERVEROUTPUT OFF
  73. SET DEFINE OFF
  74.  
  75. DECLARE
  76.  
  77.    lResponse      VARCHAR2(4000);
  78.    lProductId     VARCHAR2(20);
  79.    lStart         INTEGER;
  80.    lEnd           INTEGER;
  81.    lSleepCounter  INTEGER := 0;
  82.  
  83. BEGIN
  84.  
  85.    FOR ROW IN (  
  86.                   SELECT *
  87.                   FROM   TEMP_TC
  88.                )
  89.    LOOP
  90.  
  91.       lProductId := NULL;
  92.  
  93.       DBMS_OUTPUT.PUT(ROW.X||'=');
  94.  
  95.       lResponse := UTL_HTTP.REQUEST('http://itunes.apple.com/lookup?country=gb&media=music&entity=musicTrack&id='||ROW.X);
  96.  
  97.       --DBMS_OUTPUT.PUT_LINE(lResponse);
  98.  
  99.       lStart := INSTR(lResponse, 'collectionId":');
  100.  
  101.       IF lStart > 0 THEN
  102.      
  103.          lStart      := lStart + 14;
  104.          lEnd        := INSTR(lResponse, ', ', lStart);
  105.          lProductId  := SUBSTR(lResponse, lStart, lEnd-lStart);
  106.      
  107.       END IF;
  108.  
  109.       DBMS_OUTPUT.PUT_LINE(lProductId);
  110.  
  111.       DELETE FROM    TEMP_TC
  112.       WHERE          X = ROW.X;
  113.  
  114.       INSERT INTO    KALS_APPLE_TRACK_TO_PRODUCT_ID (TRACK_ID, PRODUCT_ID, JSON_RESPONSE)
  115.       VALUES         (ROW.X, lProductId, lResponse);
  116.  
  117.       COMMIT;
  118.  
  119.       lSleepCounter := lSleepCounter + 1;
  120.  
  121.       IF lSleepCounter = 100 THEN
  122.    
  123.          --DBMS_LOCK.SLEEP(10) ;
  124.          lSleepCounter := 0;
  125.    
  126.       END IF;
  127.    
  128.    END LOOP;
  129.  
  130. END;
  131. /
  132.  
  133. -----------------------------------------------------------------------------------------------------------------------------
  134. -----------------------------------------------------------------------------------------------------------------------------
  135. -- USE THIS QUERY TO CHECK IF THE ABOVE HAS FINISHED COMPLETELY. IT SHOULD RETURN 0 IF IT HAS.
  136.  
  137.  
  138. SELECT   COUNT(*)
  139. FROM     TEMP_TC;
  140.  
  141. -----------------------------------------------------------------------------------------------------------------------------
  142. --#########################################################################################################################--
  143. --#########################################################################################################################--
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement