BLANKS
ist ein SQL*Loader-Schlüsselwort, nicht etwas, das Sie innerhalb eines decode
verwenden können SQL-Anweisung - wird als Spaltenname behandelt. Wenn es sich wirklich um einen leeren (nulllangen) String handelt, wie es in einer Datei mit Trennzeichen durchaus der Fall sein kann, im decode
Sie könnten ''
verwenden statt BLANKS
; aber Oracle behandelt das trotzdem als null. In diesem Fall decode
sollte redundant sein und Sie können einfach ein NULLIF
verwenden wie Sie es für die anderen Spalten getan haben. Wenn die 'leere' Zeichenfolge tatsächlich aus einem oder mehreren Leerzeichen besteht, können Sie so etwas wie decode(TRIM(:PRIORITY),'',NULL,'\\N',NULL,:PRIORITY)
tun . (Sie benötigen die letzte Standardklausel für decode
sowieso oder alle Werte würden auf null gehen.)