txt和sql的转换(100分)

  • 主题发起人 主题发起人 tjqzl
  • 开始时间 开始时间
T

tjqzl

Unregistered / Unconfirmed
GUEST, unregistred user!
1.txt文件中有以下的内容,如何把它转换到sql中,要求是:2占一个字段,01720010048752占一个,801占一个,8010125占一个,15.00占一个...如此类推。
注意:1.每个内容中相隔的空格数是不同的。
2.第二个字段的内容长度是不同的,但txt中所有记录的中长度是一样的
2 01720010048752 801 8010125 15.00 2006/05/01 X J
2 1119011010179305 801 8011428 75.00 2006/01/01 X J

2.如果以上可以导入到sql中,又如何以
2 01720010048752 801 8010125 15.00 2006/05/01 X J
2 1119011010179305 801 8011428 75.00 2006/01/01 X J

这样的格式导出到txt文件中。
 
如果你只是见到的使用空格分格的内容当入不同的字段,那就比较简单了。
tstr:='2 01720010048752 801 8010125 15.00 2006/05/01 X J';
//取出第一个字段内容
f1:=copy(tstr,1,pos(' ',tstr)-1);
//取出刚才取出的内容
tstr:=trim(copy(tstr,pos(' ',tstr)+1,len(tstr)));//同时去掉空格
f2:=copy(tstr,1,pos(' ',tstr)-1);
tstr:=trim(copy(tstr,pos(' ',tstr)+1,len(tstr)));//同时去掉空格
。。。。。
就这样处理就好
 
参照碧血剑的相关内容,上面谈的详细
 
文件不大的话,就用二楼的方法,简单实用!
文件大的话,就要再想想了,关注中......
 
直接导入sql 都可以啊。 你这好像就是导出文件嘛。 如果不能直接导入, 就写代码了。
 
我看过 碧血剑的相关内容 并且试过导入,但是我只能一条记录导入到一个字段里面,分开几个字段导入不能实现。

文件里面有大概十万条左右的记录,如果用zywcd的方法导入就比较慢,不过由于我还没有想到其他办法,我一直都是用这种方法。
 
把你的表结构贴出来看看.
 
sql server 的表结构是
CREATE TABLE [dbo].[txttemp] (
[yhbh] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL ,
[yhzh] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[pq] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL ,
[bh] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[je] [money] NULL ,
[rq] [datetime] NULL ,
[xy] [varchar] (4) COLLATE Chinese_PRC_CI_AS NULL ,
[lx] [varchar] (4) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
 
你必须要这种格式么?我用你的往外倒倒文本是这种格式.
2 01720010048752 801 8010125 15.0000 2006-05-01 00:00:00.000 X J
2 1119011010179305 801 8011428 75.0000 2006-01-01 00:00:00.000 X J

如果想得到你那种格式,肯定要用formatfile文件
 
to hityou
请问你是怎么样导出的。

我已经设了系统的日期显示格式为“2006/5/1”,而且在数据库里面显示也是“2006/5/1”
为什么到出来时是“2006-5-1 00:00:00”
 
我是用bcp导出来的,生成了formatfile

在命令行下面执行
bcp "数据库。dbo。表" out “文件路径” -c -U 用户名 -P 密码 -S 服务器名

你在sqlserver2000 查一下bcp,或者bulk insert,如果要用格式文件,就 -f “路径”
 
to hityouo

可以给我具体的文件吗?
我 QQ 37945274
邮箱 ssfutou@126.com
谢谢了。
 
to hityou

可以给我具体的文件吗?
我 QQ 37945274
邮箱 ssfutou@126.com
谢谢了
 
刚看到,已发送。
 
可以用SQL的查询语句查询出来,然后再循环写道txt文件里面。
select rtrim(yhzh)+space(30-len(rtrim(yhzh)))+rtrim(bh)+space(12-len(rtrim(bh)))+space(18-len(CAST(je AS VARCHAR)))+CAST(je AS VARCHAR)+space(2)+rtrim(CONVERT(char(12), rq,111))+rtrim(xy) from tablename
 
多人接受答案了。
 
后退
顶部