BLANKS
е ключова дума за SQL*Loader, а не нещо, което можете да използвате в decode
SQL израз - третира го като име на колона. Ако наистина е празен низ (с нулева дължина), какъвто може да е случаят във файл с разделители, в decode
можете да използвате ''
вместо BLANKS
; но Oracle така или иначе третира това като нула. В който случай decode
трябва да е излишно и можете просто да използвате NULLIF
както и за другите колони. Ако „празният“ низ всъщност е един или повече интервали, можете да направите нещо като decode(TRIM(:PRIORITY),'',NULL,'\\N',NULL,:PRIORITY)
. (Ще ви трябва последната клауза по подразбиране за decode
така или иначе всички стойности ще станат нула.)