sql >> Databáze >  >> RDS >> Oracle

Oracle -- S CLAUSE => SLOUČIT? (Chyba syntaxe, )

Klauzuli WITH nemůžete použít nikde jinde než v příkazu SELECT. Prohlédněte si dokumentaci zde. :

Takže můžete udělat něco takového (testováno 11g):

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. date_trunc 5minutový interval v PostgreSQL

  2. Proč by Where 1 <> 1 v dotazu vrátil všechny řádky?

  3. JDBC:Získejte typ pole z metadat

  4. alternativa k listagg v Oracle?