- 论坛徽章:
- 0
|
本帖最后由 shaunsyb 于 2015-05-05 14:33 编辑
用Perl 将 Oracle 数据库中 一个时间以及 clob 字段 的数据打印到文本中的时候,数据发生了串行,这个clob字段 是包含多行文本内容的,现在打印出来的数据如下:
2015/03/07 07:40:03 ORA-12012: error on auto execute of job 308
ORA-01403: no data found
ORA-06512: at "TEST.PCK_TEST", line 910
ORA-06512: at "TEST.PCK_TEST", line 335
ORA-06512: at line 1
而我想要的效果是 这样的
2015/03/07 07:40:03 ORA-12012: error on auto execute of job 308
ORA-01403: no data found
ORA-06512: at "TEST.PCK_TEST", line 910
ORA-06512: at "TEST.PCK_TEST", line 335
ORA-06512: at line 1
脚本如下:- use strict;
- use warnings;
- use DBI;
- use DBD::Oracle;
- my $profile="~/.bash_profile";
- open(NEWENV, ". $profile && env|") or die "$!";
- while (<NEWENV>){
- if (/(\w+)=(.*)/){
- $ENV{$1}="$2";
- }
- }
- close NEWENV;
- my $dbh = DBI->connect('dbi:Oracle:','/','',{ora_session_mode =>2}) or die( $DBI::errstr . "\n" );
- $dbh->{AutoCommit} = 1;
- $dbh->{LongReadLen} = 40480;
- $dbh ->do("alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS'");
- my $sth=$dbh->prepare(q{select log_time,send_content from monitor_info_log});
- $sth->execute;
- my $svn_home="/home/ora10g/svn_data";
- open (SVNDATA,">","svndata.dat");
- while (my ($data1,$data2) = $sth->fetchrow_array) {
- print SVNDATA "$data1 $data2"."\n";
- }
- close SVNDATA;
- $dbh->disconnect;
复制代码 请问下 需要怎么修改 才可以达到我需要的效果呢。 |
|