sql loader 的position(A:B) 该怎么写?help,help!!

cybhello 2002-04-11 06:16:10
各位兄弟好:
我遇到一个难题,有个数据TXT文件,很大的,我取一部分

珠江桥牌九江米酒王 500 毫升 九江米酒王
蕃茜 ( 每包 ) 蕃茜 ( 每包 )
伊族北京香酥骨 5*85 克 伊族香酥骨五包

这是三行,两个字段,一个64byte,一个 18byte
我该怎么写position(A:B)?
...全文
217 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hrb_qiuyb 2002-04-12
  • 打赏
  • 举报
回复
没问题的,如你的的UltraEdit用的不错的话,对于100M的文件也没关系的,不用手动调整的,可以用Ultraedit 的块编辑及查找替换功能吗。
如果用Ultraedit 实在为难,用第一种方法吧,其实也没关系的,用一下Ultraedit 的简单的功能吧,在第二列的前面插入一列空格,这样你就可以写成B(18) position (67,85)了。
ultraedit 可以华军下载到的。
cybhello 2002-04-11
  • 打赏
  • 举报
回复

可以这样写
(
A char(64) position(1:64),
B char(18) position (66,84)
)
////////////////////////////
但是第二个字段在记事本上面的开始位置并不是在65列上啊 ,因为一个汉字两个字节?
对于你说的加入分隔符,太难了,因为文件很大,一个文本文件大的有一百多M,字段有几十个呢,不可能一个个去改啊,就是编程改也很麻烦

hrb_qiuyb 2002-04-11
  • 打赏
  • 举报
回复
可以这样写
(
A char(64) position(1:64),
B char(18) position (66,84)
)

建议你不要用position这种方式,用如下方式更好。
1、用ultraedit将你的原文本处理成如下形式
"珠江桥牌九江米酒王 500 毫升","九江米酒王"
"蕃茜 ( 每包 )","蕃茜 ( 每包 )"
"伊族北京香酥骨 5*85 克","伊族香酥骨五包"
你的sql loader的控制文件可以这样写
LOAD DATA
INFILE 'yourfile'
INTO TABLE your_tablename
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(
A CHAR(64),
B CHAR(18)
)
如你熟悉后,你会发觉这种方式更加实用、方便!

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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