-------------sql server 2000 读取.csv文件的问题----------------
在服务器上的D:\DateCSV 目录下有一个Date_new.csv文件
(目录下同时还有很多带日期的Date_new_070421.csv,Date_new_070422.csv文件)
请问在sql server 2000中有什么办法每半小时去读取该目录下的文件Date_new.csv 再insert到数据库的表中吗?
怎么实现呢?
[解决办法]
1.将目录下的csv送到临时文件中
exec master..xp_cmdshell 'dir d:\DateCSV\Date_new*.csv /b > tmp.txt '
2.取得目录下的csv文件路径存入临时表
create table #b(path varchar(200))
insert 表名
select * from OpenRowset( 'MSDASQL ', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
DefaultDir=d:\DateCSV\; ', 'select * from tmp.txt ')
3.逐行读取csv文件,用2中的openrowset来插入到数据库中(动态语句实现)
[解决办法]
创建作业,半小时调度执行一次。
SQL 访问csv文件可以用bcp或bulk insert。
EXEC master..xp_cmdshell 'bcp 数据库名..表名 in 文件全路径 -c -t, -S 服务名 -U 用户名(需要有写入权限) -P 密码 '
bulk insert test.dbo.tbname from 'D:\Test.csv ' with(fieldterminator= ', ',rowterminator= '\n ')
查一下联机帮助。
[解决办法]
说的很清楚了,tmp.txt不存在,说明没生成这个文件。。。