sql >> Database >  >> RDS >> Oracle

Gebruik for-lus na de With-clausule in PL/SQL

U hebt geen toegang tot een CTE buiten de hele verklaring. En je hebt geen toegang tot afzonderlijke delen van een CTE buiten de definitieve SELECT voor een CTE.

Je moet het geheel . plaatsen CTE (inclusief de laatste SELECT-instructie) in de cursorlus:

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. Tijdzonewaarde van gegevens wijzigen

  2. Hoe ResultSet te retourneren van opgeslagen procedure in Oracle?

  3. Een HAVING-component gebruiken in een UPDATE-instructie

  4. Voordelen versus nadelen van het implementeren van een hybride cloudomgeving