Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle sqlldr:Spalte hier nicht erlaubt

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.)