Проект: мне нужно выбрать один текстовый файл из одной папки, а затем, удалив самую первую строку этого текста, вставить данные этого файла в таблицу sql. Для этого у меня есть нижеупомянутый код и вопросы.
Exec sp_configure 'xp_cmdshell',1
reconfigure
exec xp_cmdshell 'robocopy *.txt D:\DA\Nikhil\Raw D:\DA\Nikhil\Filter /XF *att*.txt'
exec xp_cmdshell 'move D:\DA\Nikhil\Raw\*.txt D:\DA\Nikhil\ProcessedData'
exec xp_cmdshell 'more +1 D:\DA\Nikhil\Filter\*.txt > D:\DA\Nikhil\To_be_processed\.txt'
exec xp_cmdshell 'del D:\DA\Nikhil\Filter\*.txt'
--CREATE TABLE #File
--(
--FileName SYSNAME,
--Depth TINYINT,
--IsFile TINYINT
--);
--INSERT INTO #File (FileName, Depth, IsFile)
--EXEC xp_DirTree N'D:\DA\Nikhil\To_be_processed',1,1
--SELECT top 1 FileName, Depth, IsFile
--FROM #File
--WHERE IsFile = 1
--ORDER BY CAST(SUBSTRING(FileName, PATINDEX('%[0-9]%', FileName), 20) As nvarchar) DESC
Вопрос 1 :
Если вы go через код строки ниже,
exec xp_cmdshell 'more +1 D:\DA\Nikhil\Filter\80 - extract_CES_SAE_v3_p00479029ytf_20200203013316.txt > D:\DA\Nikhil\To_be_processed\'
Я пытаюсь удалить самую первую строку моего текстового файла, и после удаления я перемещаю этот файл в другую папку (т. Е. To_be_processed). Но это не позволяет мне дать его, так как это имя из папки фильтра. Так есть ли способ получить это? потому что мой следующий вопрос зависит от этого имени файла.
Вопрос 2 :
В моем первом вопросе я жестко закодировал это имя файла, но я хочу запустить свой код ежедневно, поэтому мне нужно это имя файла. Предположим, я получу это имя файла, но мой следующий код,
CREATE TABLE #File
(
FileName SYSNAME,
Depth TINYINT,
IsFile TINYINT
);
INSERT INTO #File (FileName, Depth, IsFile)
EXEC xp_DirTree N'D:\DA\Nikhil\To_be_processed',1,1
SELECT top 1 FileName, Depth, IsFile
FROM #File
WHERE IsFile = 1
ORDER BY CAST(SUBSTRING(FileName, PATINDEX('%[0-9]%', FileName), 20) As nvarchar) DESC
Я получаю вывод как 80 - extract_CES_SAE
. Используя это имя (некоторый шаблон этого файла), я должен вставить только этот файл в таблицу SQL. Поэтому мой вопрос заключается в следующем: как я могу вставить этот файл в таблицу SQL из шаблона считывания этого имени файла.
Имена файлов являются динамическими c, они будут постепенно изменяться. Предположим, что сегодняшнее имя файла начинается с 80
, затем в следующем файле будут использоваться 81
, 82
, et c.
Так что кто-нибудь может мне помочь с этими двумя вопросами, потому что они зависят друг от друга .
имя таблицы: extract_CES_SAE