Я использую BULK INSERT для своих текстовых файлов. Все работает отлично, но одна вещь, которую я обнаружил. Если я дам окончательный стол финальной строки значение, оно будет импортировано. Если значение этого финального столбца в последней строке пуст, оно отбрасывает строку, несмотря на то, что столбец назначения допускает нулевые значения! Текстовый файл используется вкладка разделитель, вот пример из последних данных строки:BULK INSERT отсутствует последний ряд?
Mike Johnson 1/29/1987 M
если я какое-либо значение в поле строки последней колонки будет вставлен, например, здесь:
Mike Johnson 1/29/1987 M test
Это мой BULK Вставка:
BULK INSERT ##TEMP_TEXT
FROM '#uncdir#\#cffile.ServerFile#'
WITH (
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n'
)
Я пытался использовать \r
вместо \n
, но это не исправить эту проблему. Я также изучал некоторые веб-сайты, но не нашел решения. Мне интересно, что это может быть исправлено в SQL. Если кто-то знает, как это можно исправить, дайте мне знать.
РЕШЕНИЕ:
Для тех, кто, как использовать ColdFusion здесь линия, которая добавит новую строку в текстовом файле.
exec xp_cmdshell 'echo. >> "#uncdir#\#cffile.ServerFile#"';
Ключ должен был включать двойные кавычки вокруг переменных coldfusion, иначе код не работает.
uncdir код здесь:
<cfset uncdir = createObject("java","java.net.InetAddress").getLocalHost().getHostName()/>
cffile.ServerFile
вы можете получить из формы. Я использовал JQuery для отправки текстового файла. Надеюсь, это поможет. Спасибо.
Вы пытались использовать '\ r \ n'? –
Я пробовал, но это вызывает ошибку: coldfusion.tagext.sql.QueryTag $ DatabaseQueryException: ошибка Выполнение запроса базы данных. –
Также я попытался использовать '0x0a' для параметра rowdeterminator. –