BLANKS
is een SQL*Loader-sleutelwoord, niet iets dat u kunt gebruiken in een decode
SQL-instructie - het behandelt het als een kolomnaam. Als het echt een lege (nul-lengte) string is, zoals het geval kan zijn in een begrensd bestand, in de decode
je zou ''
. kunnen gebruiken in plaats van BLANKS
; maar Oracle behandelt dat hoe dan ook als nul. In dat geval de decode
zou overbodig moeten zijn en je kunt gewoon een NULLIF
. gebruiken zoals je hebt gedaan voor de andere kolommen. Als de 'lege' tekenreeks eigenlijk een of meer spaties is, kunt u iets doen als decode(TRIM(:PRIORITY),'',NULL,'\\N',NULL,:PRIORITY)
. (Je hebt de laatste standaardclausule nodig voor de decode
hoe dan ook of alle waarden zouden naar null gaan.)