perl unload utf-8 oracle Wide character in print at unload_oracle.pl line 105.
2016-11-17 19:03
399 查看
#!/usr/bin/perl use DBI; use Encode; my $dbName = 'oadb'; my $dbUser = 'vxspace'; my $dbUserPass = 'xxx'; my $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass) or die "can't connect to database "; my $table_name= "$ARGV[0]"; my $hostSql = qq{select COLUMN_NAME from dba_tab_columns where table_name='$table_name'}; my $UNLOAD_SRC_DBCONN = DBI->connect("DBI:Oracle:".$dbName,$dbUser,$dbUserPass) or die("DB connect error!n"); my $DW_DATA_DT =""; my $datafile="$table_name.TXT"; use HTTP::Date qw(time2iso str2time time2iso time2isoz); my @lstRlst; my ($COLUMN_NAME); my $selStmt = $dbh->prepare($hostSql); $selStmt->bind_columns(undef, \$COLUMN_NAME); $selStmt->execute(); while( $selStmt->fetch() ){ print "$COLUMN_NAME\n"; push (@lstRlst1 ,$COLUMN_NAME); } $selStmt->finish; $dbh->disconnect; my @lstRlst = reverse (@lstRlst1); ########################################## #=================全局变量区==========================# if ($#ARGV <0){ print "请输入一个表名参数"; exit(-1); } sub printlog { my ($LogInfo)= @_; my $CurrTime = time2iso(time()); # 当前时间 if(!defined($LogInfo) ){$LogInfo="";} my $StrLog="【${CurrTime}】 \t ${LogInfo} \n"; print $StrLog; #print LOGFILE $StrLog; } my $exportOracleSql="SELECT "; #数据导出的sql for (my $m=0;$m<@lstRlst + 0 ;$m++){ if ($m != @lstRlst + 0 - 1){ $exportOracleSql = "$exportOracleSql trim($lstRlst[$m])".", " } else{ $exportOracleSql = "$exportOracleSql trim($lstRlst[$m])"} print "$exportOracleSql\n"; } my $exportOracleSql="$exportOracleSql from $dbUser.$table_name"; sub Exportdata{ printlog "开始导出数据!"; my $exportsql=$exportOracleSql; if($exportsql eq "error"){ return -1; } my $format_sql="alter session set nls_date_format='yyyy-mm-dd'"; my $stmt=$UNLOAD_SRC_DBCONN->prepare($format_sql); unless ($stmt){ printlog "\n执行prepare SQL语句出错:\n"; printlog $DBI::errstr; return -1; } $stmt->execute; if ($UNLOAD_SRC_DBCONN->err) { printlog "\n执行SQL语句出错:\n"; printlog $DBI::errstr; return -1; } $stmt=$UNLOAD_SRC_DBCONN->prepare($exportsql); unless ($stmt){ printlog "\n执行prepare SQL语句出错:\n"; printlog $DBI::errstr; return -1; } $stmt->execute; if ($UNLOAD_SRC_DBCONN->err) { printlog "\n执行SQL语句出错:\n"; printlog $DBI::errstr; return -1; } my $row=0; my $size=0; my $curtime; my $writeflagsql; my $tmpstr=""; $row=0; my $m=0; open(DATAFILE,">", $datafile) || die (print "Open DATA file failed!!!\n"); while(my $Rows = $stmt->fetchrow_arrayref){ $m=0; $tmpstr=""; foreach(@$Rows){ $tmpstr=$tmpstr.$Rows->[$m]."|"; $m++; } #print DATAFILE encode_utf8($tmpstr.$DW_DATA_DT)."\n"; print DATAFILE $tmpstr.$DW_DATA_DT."\n"; $row++; if(($row%10000) == 0){ printlog "已导出数据$row条!"; } } $stmt->finish; # print FLAGFILE $datafile,"\n"; # print FLAGFILE $row,"\n"; close(DATAFILE); # close(FLAGFILE); $curtime=time2iso(time()); printlog "数据已成功导出!"; printlog "一共导出数据${row}条"; return 1; } Exportdata Wide character in print at unload_oracle.pl line 105. Wide character in print at unload_oracle.pl line 105. Wide character in print at unload_oracle.pl line 105. 【2016-11-17 19:02:25】 数据已成功导出! 【2016-11-17 19:02:25】 一共导出数据3726条 需要encode_utf8($tmpstr.$DW_DATA_DT)."\n";
相关文章推荐
- perl unload utf-8 oracle Wide character in print at unload_oracle.pl line 105.
- Wide character in print at hcp.pl line 21.
- Wide character in print at check_cert.pl line 18.
- Wide character in print at hcp.pl line 21.
- Wide character in print at hcp.pl line 21.
- Wide character in print at ../lib/MonWalkProc.pm line 569.
- [perl]Wide character in print
- Perl Wide character in print问题解决
- 【 Perl 】三种方式解决” Wide character in print “
- php 返回json 解析 报Wide character in print
- Wide character in print报错
- use utf8 gives me 'Wide character in print'
- php 返回json 解析 报Wide character in print
- SyntaxError: JSON.parse: bad control character in string literal at line 1 column 16 of the JSON data
- Wide character in perl
- perl unload utf-8 oracle 数据库
- perl unload utf-8 oracle 数据库
- Wide character in print 报错
- Use of uninitialized value in concatenation (.) or string at test.pl line 232
- AT&T汇编-Brennan's Guide to Inline Assembly