I am using a Control File to import data from a CSV file into a table, using sqlldr to import the data, where a large number of fields are numeric values with integer and decimal part separated by dots. The Control File works just fine because I cast the number to the input my table expects by using

"TO_NUMBER(:MyVariable, '9999999999D999999', 'NLS_NUMERIC_CHARACTERS = ''.,''')"

Although the control file works just fine I would like to know: Is it possible to use:


In this way I don't mind about differences between character used in NLS and the one used to create the file, nor i mind about the actual number of decimal significative number.

1 Answer 1


I had the same question and I find a solution that works for me!

You have to put the sentence set NLS_NUMERIC_CHARACTERS=,. in the beginning of the .bat file. This must be before you call the load in the .ctl file.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.