用DTS先导入全部内容到临时的表,再写个SQL语句插入目的表就可以了.

解决方案 »

  1.   

    我用DTS导总是有问题,不知道分割符用什么。能不能用SQL写程序大批量导入,这个是银行大机的数据,每天要导入一次的,如果用DTS导的话操作员太烦了。最好能写个存储过程,我用ASP.net做的一个考核程序能直接调用这个存储过程,以实现数据导入。
      

  2.   

    如果你文本中数字的位置固定,可以用程序一行一行的读,再按位数算出账号,金额,姓名三个字段的具体内容,存入三个变量,然后用ADO控件编写程序,存入数据库。
      

  3.   

    因为你的内容长度是有规律的,
    可以将每一行作为一个字段导入到一个过渡表中,当然此表只有一个字段,
    然后用SUBSTRING(SOURCE,BEGEIN,LENGTH)函数将相关字段取出到一个新表中
      

  4.   

    BULK INSERT 库名..表名
    FROM 'c:\test.txt'
    WITH (
        FIELDTERMINATOR = ';',
        ROWTERMINATOR = '\n'
    )注意字段标识符随便选了一个,为“;”,没用的。
      

  5.   

    再用下面的参考例子生成另一个表
    select substring(Body,4,5) fi,substring(Body,20,6) se into  tt from Threads
      

  6.   

    文件内各个字段间隔都是不定长度的空格,有的列之见2个空格,有的列之间5个空格,那字段表示符应该是什么,我写了那个程序总是出错,用DTS到是可以导入到临时表中
      

  7.   

    按照你的方法我弄了一下可以的,账号,金额,姓名也导入了,非常感谢你!但现在出现了这样的问题:例如在第40位开始有“存款”两个中文字符,而另外一行的第40位开始却是####四位字符串,在文本中“存款”两个中文字符刚好和####对齐,也就是说每个中文字符占两个“##”的宽度,但用SUBSTRING函数时候,“存款”这两个中文字符只算了两位,这导致后面的金额取出来有错位现象,不知道这怎么解决