sql >> Databasteknik >  >> RDS >> Oracle

Använd för loop efter With-satsen i PL/SQL

Du kan inte komma åt en CTE utanför hela uttalandet. Och du kan inte komma åt enskilda delar av en CTE utanför den slutliga SELECT för en CTE.

Du måste lägga hela CTE (inklusive den sista SELECT-satsen) in markörslingan:

FOR R IN (WITH TMP1 AS (.....), 
               TMP2 AS (......), 
               TMP3 AS (......)
          SELECT DISTINCT ..... 
          FROM TMP1 
             JOIN temp2 ON ... 
             JOIN temp3 ON ... 
          WHERE .....)
LOOP
   -- here goes the code that processes each row of the query
END LOOP;



  1. Rails 3 ignorerar Postgres unika begränsningsundantag

  2. När du försöker ladda en clob till ett Oracle-bord, laddar du för många poster

  3. Refererar till ett associativt matrisvärde från PDO::FETCH_ASSOC

  4. Räkna från en tabell, men sluta räkna vid ett visst antal