Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle -- С КЛАУЗА => СЛИВАНЕ? (Синтактична грешка, )

Не можете да използвате клаузата WITH никъде освен в оператор SELECT. Вижте документацията тук. :

И така, можете да направите нещо подобно (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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Името ORA-00955 вече се използва от съществуващ обект

  2. Entity Framework се свързва с Oracle:ODP за .NET не поддържа време

  3. Как да показвате ГРЪЦКИ знаци в конзолата за регистриране на JDeveloper

  4. Oracle обединява константите в една таблица

  5. Задействайте избиране на дъщерни записи, умножаване на техните стойности и актуализиране на родителски запис