我有用DTS导数据的一个例子,就是想问下怎么把开头不要的5行略过,再导数据呢?我在VB里可以实现读文件略过这几行字,但我希望能直接用sql写个存储过程把这些文件批量的导入表中。

解决方案 »

  1.   

    我有用DTS导数据的一个例子,就是想问下怎么把开头不要的5行略过,再导数据呢?我在VB里可以实现读文件略过这几行字,但我希望能直接用sql写个存储过程把这些文件批量的导入表中。
    A:另写一个EXE程序来处理这些"不规则"的数据文件,将其处理为bcp"认识"的合法数据格式.
    然后再每次调用这个存储过程之前先调用处理程序.
      

  2.   

    请问下bugchen888(臭虫):这个EXE程序怎么写啊?
      

  3.   

    --假设此文件在c:\aa.txt
    select *,identity(int,1,1) as id into # from 
    opendatasource('MICROSOFT.JET.OLEDB.4.0','Text;HDR=Yes;DATABASE=C:\')...[aa#txt]
    --删掉前5行和最后一行
    delete from # where id<6 or id=(select max(id) from # )
      

  4.   

    哦,这样啊,好,我试试,谢谢wgsasd311(自强不息),那这好几行作为一条记录的该怎么实现导入呢?麻烦高手再帮个忙!!!
      

  5.   

    那这好几行作为一条记录的该怎么实现导入呢======>下面的方法可以把多行加到一个变量里,但是最多只能加到8000个字符。
    declare @s varchar(8000)
    select @s=''
    select @s=@s+f1 from #
      

  6.   

    楼主如果是在编程里,比如PB,那就没有限制了,可以这样写
    blob str &&定义变量
    str=''
    selectblob f1 into :str from #;
      

  7.   

    我是用VB写的,以前是读几行数据选择有用的几条数据插进表中,数据能够导入,但是觉得还是有点费时,所以希望能直接用sql实现!
      

  8.   

    日志?一般般慢啊,如果要导入的是业务数据库可能会慢点吧,1g一个小时应该是比较轻松的,要10行一条记录,想用bcp加快估计也是不怎么现实的事情。我也干过 还是一行行来吧。