查看: 11299|回复: 26

求自动生成sqlldr控制文件脚本

[复制链接]
论坛徽章:
0
跳转到指定楼层
1#
发表于 2007-1-31 19:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求自动生成sqlldr控制文件脚本 救急啊
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
2#
发表于 2007-1-31 19:25 | 只看该作者
写个小程序,打印一下即可

使用道具 举报

回复
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
3#
发表于 2007-1-31 19:27 | 只看该作者
这个是Perl
[PHP]
&print_ctl();

sub print_ctl()
{
        open(FO,">test.ctl";
        print FO 'OPTIONS(DIRECT=TRUE,ROWS=0,ERRORS=0,READSIZE=655360)'."\n";
        print FO 'LOAD DATA'."\n";
        print FO "INFILE \'test\.dat\'\n";
        print FO 'TRUNCATE'."\n";
        print FO 'INTO TABLE test'."\n";
        print FO "FIELDS TERMINATED BY \'\\t\'\n";
        print FO "TRAILING NULLCOLS\n";
        print FO '(id,name)'."\n";
        close(FO);
}


.
[/PHP]

使用道具 举报

回复
论坛徽章:
0
4#
 楼主| 发表于 2007-1-31 19:31 | 只看该作者

reply:

感谢关注!~~

数据表很多,有上百个,追求效率想求个语句.

最好在pl/sql中能执行的

万分谢意

---------------------------------------------------------------------------
anysql的ociuldr好用,只可惜在win2003下执行会报错,
终止执行,郁闷~~~

使用道具 举报

回复
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
5#
发表于 2007-1-31 19:39 | 只看该作者

Re: reply:

最初由 pass21 发布
[B]感谢关注!~~

数据表很多,有上百个,追求效率想求个语句.

最好在pl/sql中能执行的

万分谢意

---------------------------------------------------------------------------
anysql的ociuldr好用,只可惜在win2003下执行会报错,
终止执行,郁闷~~~ [/B]


这个也不难
不过你得明确是否每张表的所有字段都要导入?
还有你的INFILE文件名从哪里来?

使用道具 举报

回复
论坛徽章:
0
6#
 楼主| 发表于 2007-1-31 19:43 | 只看该作者

Re: Re: reply:

最初由 atgc 发布
[B]

这个也不难
不过你得明确是否每张表的所有字段都要导入?
还有你的INFILE文件名从哪里来? [/B]

-----------------------------------------------------------------------------------
您说的非常正确,我需要每个字段的

不会写各,帮忙各

使用道具 举报

回复
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
7#
发表于 2007-1-31 19:51 | 只看该作者
想想还是有点繁的,关键是数据类型五花八门
有没有LOB,LONG之类的啊?

使用道具 举报

回复
论坛徽章:
0
8#
 楼主| 发表于 2007-1-31 20:11 | 只看该作者

reply:

大哥你自己写啊,这样肯定累的饿

数据类型啥多有,clob,varchar2,number etc.

哪位朋友有现成的话,请不吝共享.

好象Toad可以生成控制文件,找了老半天了,不知道怎么搞一下

我用TOAD9.1.8的

使用道具 举报

回复
论坛徽章:
0
9#
 楼主| 发表于 2007-1-31 21:44 | 只看该作者

reply:

由于有clob类型,我在文本文件中采用的分隔符是:

字段分隔符:``  (2个`)   行分隔符:@@ (2个@)

我这样写对吗?

-----------------------------------------------------------------------------------------------
LOAD DATA
INFILE '.\..\mssql2005\bcp_data\base_business_ch_convert.txt'
INTO TABLE base_business_ch_convert
BADFILE '.\load\badfile\base_business_ch_convert.log'
Truncate
FIELDS TERMINATED BY '``' OPTIONALLY ENCLOSED BY '@@'
TRAILING NULLCOLS
(
      col_1 , col_2
)

使用道具 举报

回复
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
10#
发表于 2007-1-31 21:49 | 只看该作者
给你一个例子
其中NAME是CLOB字段,所以宽度设得大一点
MY_DATE是日期,
这里用得是直接路径,并不是任何表都可以DIRECT=TRUE的



OPTIONS(DIRECT=TRUE,ROWS=10000,ERRORS=0,READSIZE=655360)
LOAD DATA
INFILE 'test.dat'
TRUNCATE
INTO TABLE TEST
FIELDS TERMINATED BY '\t'
TRAILING NULLCOLS
(ID,NAME CHAR(1000000000),MY_DATE DATE 'MM/DD/YYYY')

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表