執行匯入一個TXT的沒有問題的。
if object_id('tempdb.dbo.#test1') is not null drop table #test1
go
create table #test1([notext] nvarchar(20))
BULK INSERT #test1 FROM 'E:\LOTTData\hellome\24.txt'
WITH
(
FIELDTERMINATOR =' ',
ROWTERMINATOR = '\n'
)
GO
SELECT * FROM #test1
但是
在檔案夾hellome里有1,2,3,4。。。。。333.TXT文本檔案,共計有幾百個TXT文本檔案,TXT文本檔案的檔案名都為數字
1.TXT
2.TXT
3.TXT
......
......
1223.TXT
declare @sql nvarchar(20),@i int
select @sql='',@i=1223
while @i>0 begin
set @sql='insert INTO #test1
select FROM OPENDATASOURCE(''MICROSOFT.JET.OLEDB.4.0'',''Text;DATABASE=E:\LOTTData\hellome\'')...['+convert(varchar,@i)+'#txt]'
exec(@sql)
@i=@i-1
end
SQL 把所有TXT中 NOT NULL記錄(非空資料,每行資料要沒有逗號分隔符)一次性匯入多個TXT到表里,但運行時報錯,如何修改?
TXT文本檔案里非空的每行資料格式是1,2,3,4,5同時要求:欄位notext的格式為 01 02 03 04 05
uj5u.com熱心網友回復:
if object_id('tempdb.dbo.#test1') is not null drop table #test1
go
create table #test1([notext] nvarchar(20))
DECLARE @sql NVARCHAR(MAX), @i INT;
SELECT @sql = N'', @i = 1223;
WHILE @i > 0
BEGIN
SET @sql = N'BULK INSERT #test1 FROM 'E:\LOTTData\hellome\' + CONVERT(VARCHAR, @i)
+ N'.txt'' WITH
(
FIELDTERMINATOR ='' '',
ROWTERMINATOR = ''\n''
)' ;
PRINT @sql;
EXEC (@sql);
SET @i = @i - 1;
END;
uj5u.com熱心網友回復:
后來原來報錯是一樣的麻煩你了
uj5u.com熱心網友回復:
if object_id('tempdb.dbo.#test1') is not null drop table #test1
go
create table #test1([notext] nvarchar(20))
DECLARE @sql NVARCHAR(MAX), @i INT;
SELECT @sql = N'', @i = 1223;
WHILE @i > 0
BEGIN
SET @sql = N'BULK INSERT #test1 FROM 'E:\LOTTData\hellome\' + CONVERT(VARCHAR, @i)+ N'.txt''
;WITH
(
FIELDTERMINATOR ='' '',
ROWTERMINATOR = ''\n''
) ;
PRINT @sql;
EXEC (@sql);
SET @i = @i - 1;
END;
uj5u.com熱心網友回復:
修改路徑時把引號多洗掉了一個了,路徑前面是兩個單引號:
if object_id('tempdb.dbo.#test1') is not null drop table #test1
go
create table #test1([notext] nvarchar(20))
DECLARE @sql NVARCHAR(MAX), @i INT;
SELECT @sql = N'', @i = 1223;
WHILE @i > 0
BEGIN
SET @sql = N'BULK INSERT #test1 FROM ''E:\LOTTData\hellome\' + CONVERT(VARCHAR, @i)
+ N'.txt'' WITH
(
FIELDTERMINATOR ='' '',
ROWTERMINATOR = ''\n''
)' ;
PRINT @sql;
EXEC (@sql);
SET @i = @i - 1;
END;
uj5u.com熱心網友回復:
謝謝大神
請把格式輸出為為 01 02 03 04 05,希望學習到這樣的技法

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/283516.html
標籤:疑難問題
上一篇:sqli-labs連接資料庫失敗
下一篇:Python作業
