2015-02-18 14 views
5

Ich muss neu erstellte Spalte in meiner Oracle-Tabelle aktualisieren. Um dies zu tun muss ich vorhandene Werte in der Zeile verwenden, um zu entscheiden, wie diese Spalte zu füllen, erhalte ich Fehler:Aktualisierungsabfrage if-Anweisung für Oracle

java.lang.NullPointerException -> See Debug Output for details 

Dies ist meine Frage:

UPDATE 
    SCHEMA_NAME.TABLE_NAME 
SET 
    OCO= IF CO= 'Y' AND COM='Y' THEN 
{ 
    'Y' 
} ELSE 
{ 
    'N' 
} 
END IF; 

Irgendwelche Vorschläge auf Syntax?

Antwort

12

Sie könnten CASE Ausdruck in der SET Klausel verwenden.

Zum Beispiel

UPDATE table 
SET schema.column = CASE 
         WHEN CO= 'Y' AND COM='Y' THEN 
          'Y' 
         ELSE 
          'N' 
        END 
+1

wie ein Charme, danke, es zu schätzen wissen. –

+1

Gern geschehen. Bitte markieren Sie es, wenn es Ihnen geholfen hat. –

+0

Wenn der Wert von "CO" oder "COM" in derselben Anweisung aktualisiert wird, berücksichtigt der Fallblock den alten Wert der Spalten "CO" und "COM" oder die aktualisierten Werte? – gkapagunta

Verwandte Themen