sql >> Database teknologi >  >> RDS >> Oracle

Oracle -- MED KLAUSUL => FLET? (Syntaks fejl, )

Du kan ikke bruge WITH-sætningen andre steder end i en SELECT-sætning. Se dokumentationen her. :

Så du kan gøre noget som dette (11g testet):

MERGE INTO animalia d
USING (WITH X AS 
       (SELECT  'moo' AS COW, 'woof' AS CAT, 
                (SELECT MAX( DECIBELS ) 
                   FROM ANIMALIA 
                  WHERE COW = 'moo' ) AS DECIBELS
          FROM DUAL )
       SELECT * FROM X) q ON (1 = 1)
 WHEN MATCHED THEN UPDATE SET d.cow = q.cow||' and more';



  1. MySql ved hjælp af korrekt syntaks for over-klausulen

  2. Sådan har du nøjagtige decimalværdier uden afrunding i MySQL

  3. Forskellen mellem sprog sql og sprog plpgsql i PostgreSQL-funktioner

  4. Hvordan kan jeg udføre pl/pgsql-kode uden at oprette en funktion?