perl将oracle数据库的数据导出成txt的简单方式
当我们面对 数百万数千万行列的数据库表的时候,而你又希望能将数据尽快的导出成txt给你的老板,有软件或者其他东西导出来就显得比较郁闷了,因为老板要吃午饭了,他可不希望在下班的时候还听到你在说,数据正在导出中。
于是我们利用了,速度转入正题了啊。
需要的模块:
DBI;
#!/usr/bin/perl
use DBI;
$dbname="数据库服务名称";
$user="用户";
$passwd="密码";
open IN,">目的文件.txt"or die "$!";
my $dbh = DBI->connect("dbi:Oracle:$dbname",$user,$passwd) or die "can't connect to
database ". DBI-errstr;
my $sth = $dbh->prepare("select * from wl_cp_name"); #用sql语句写出你想要的数据
$sth->execute();
while (my @ref = $sth->fetchrow_array()){
chomp (@ref);
my $file_data = join "\t", @ref; #以制表符来分割最后导出来的数据
print IN $file_data."\n" #导入目的文件
}
print "已经跑完了\n";
$sth->finish();
$dbh->disconnect();
close IN;
OK了,程序就是这么简单,给了一个接口以后,perl就可以尽情的抓取数据了,放心吧,你的老板还没来的及把凳子坐热乎,你就可以把数据给他了,让他就对付这重量级的数据吧。呵
相关文档:
课程六 运行时应用变量
本课重点:
1、创建一个SELECT语句,提示USER在运行时先对变量赋值。
2、自动定义一系列变量,在SELECT运行时进行提取。
3、在SQL PLUS中用ACCEPT定义变量
注意:以下实例中标点均为英文半角
一、概述:
变量可 ......
课程七 其他数据库对象
SEQUENCE
创建实例:
SQL> CREATE SEQUENCE s_dept_id
2 INCREMENT BY 1
3 START WITH 51
4 MAXVALUE 9999999
5 NOCACHE
6 NOCYCLE;
Sequence created.
1、NEXTVAL和CURRVAL的 ......
作者: 三十而立时间:2009年11月08日 12:15:21请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“inthirties(三十而立)”和出处”http://blog.csdn.net/inthirties/archive/2009/11/08/4786769.aspx”,深入讨论可以联系inthirties@gmail.com。在csdn上看到一个网友问的一个问题 http://topic.csdn.net ......
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)(SID_DESC =
&nb ......
最近发现有一个页面的打开速度很慢,几乎每次都需要刷新十几次才能打开,分析原因可能是由于时间的积累,该表中的数据量过大引起的(该表是一张存放过程性数据的表)。经查实,果真是该表数据量过大,有7百万之多。遂决定将部分历史数据备份并清除掉,以提高性能。
使用:creart table table_bak as select * from t ......