Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle sqlldr :colonne non autorisée ici

BLANKS est un mot-clé SQL*Loader, pas quelque chose que vous pouvez utiliser dans un decode Instruction SQL - elle la traite comme un nom de colonne. S'il s'agit vraiment d'une chaîne vide (de longueur nulle), comme cela peut bien être le cas dans un fichier délimité, dans le decode vous pouvez utiliser '' au lieu de BLANKS; mais Oracle traite cela comme nul de toute façon. Auquel cas le decode devrait être redondant et vous pouvez simplement utiliser un NULLIF comme vous l'avez fait pour les autres colonnes. Si la chaîne 'vide' est en fait un ou plusieurs espaces, vous pouvez faire quelque chose comme decode(TRIM(:PRIORITY),'',NULL,'\\N',NULL,:PRIORITY) . (Vous auriez besoin de la clause par défaut finale pour le decode de toute façon ou toutes les valeurs iraient à null.)