BLANKS
är ett SQL*Loader-nyckelord, inte något du kan använda i en decode
SQL-sats – det behandlar det som ett kolumnnamn. Om det verkligen är en tom (noll längd) sträng, vilket mycket väl kan vara fallet i en avgränsad fil, i decode
du kan använda ''
istället för BLANKS
; men Oracle behandlar det som null ändå. I så fall decode
bör vara redundant och du kan bara använda en NULLIF
som du har för de andra kolumnerna. Om den "tomma" strängen faktiskt är ett eller flera mellanslag kan du göra något som decode(TRIM(:PRIORITY),'',NULL,'\\N',NULL,:PRIORITY)
. (Du behöver den sista standardsatsen för decode
i alla fall eller så skulle alla värden gå till null.)