怎样将txt文件导入到SQL的一个表中

ywm8208 2004-09-10 04:06:28
txt文件是一个没有用分隔符分开的字符串
现要导入到SQL的表中
txt文件格式:0000000010020250212200407231021461
要导入的SQL表格式:字段1 char(9),字段2(10),....
怎样才能转换
...全文
398 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bflovesnow 2004-09-10
  • 打赏
  • 举报
回复
该说得他们都说了 我就不表态啦~~
zjcxc 元老 2004-09-10
  • 打赏
  • 举报
回复
--测试表
CREATE TABLE star (
[机号] [int] NOT NULL ,
[卡号] [varchar] (10) COLLATE Chinese_PRC_CS_AI NOT NULL ,
[日期] [varchar] (10) COLLATE Chinese_PRC_CS_AI NOT NULL ,
[时间] [varchar] (10) COLLATE Chinese_PRC_CS_AI NOT NULL ,
[刷卡状态] [varchar] (10) COLLATE Chinese_PRC_CS_AI NOT NULL ,
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[tag] [bit] NULL
) ON [PRIMARY]
go

--导入数据
create table #t(a char(34))
bulk insert #t from 'c:\a.txt' --假设文本文件为c:\a.txt

insert star(机号,卡号,日期,时间,刷卡状态,tag)
select substring(a,1,9),substring(a,10,10)
,substring(a,20,8),substring(a,28,4)
,substring(a,32,2),substring(a,34,1)
from #t
drop table #t
go

--显示导入结果
select * from star
go

--删除测试
drop table star

/*--测试结果

机号 卡号 日期 时间 刷卡状态 ID tag
-------- ---------- ---------- ---------- ---------- ----------- ----
1 0020250212 20040723 1021 46 1 1

(所影响的行数为 1 行)
--*/
rezood 2004-09-10
  • 打赏
  • 举报
回复
EXEC master..xp_cmdshell 'bcp BD_NAME..TABLE_NAME in c:\TXT_NAME.txt -c -t'
ywm8208 2004-09-10
  • 打赏
  • 举报
回复

CREATE TABLE star (
[机号] [int] NOT NULL ,
[卡号] [varchar] (10) COLLATE Chinese_PRC_CS_AI NOT NULL ,
[日期] [varchar] (10) COLLATE Chinese_PRC_CS_AI NOT NULL ,
[时间] [varchar] (10) COLLATE Chinese_PRC_CS_AI NOT NULL ,
[刷卡状态] [varchar] (10) COLLATE Chinese_PRC_CS_AI NOT NULL ,
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[tag] [bit] NULL
) ON [PRIMARY]


要得到结果:机号 卡号 日期 时间 刷卡状态  ID   tag


1 0020250212 2004-07-23 10:21 46 自动生成 1

怎么转换呢
ywm8208 2004-09-10
  • 打赏
  • 举报
回复
是的
zjcxc 元老 2004-09-10
  • 打赏
  • 举报
回复
表结构写出来,是否根据表结构固定取结果文本文件中的指定长度的数据?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧