【问题标题】:Export the logs into a Text file for Oracle SQL "update" script using perl script使用 perl 脚本将日志导出到 Oracle SQL“更新”脚本的文本文件中
【发布时间】:2017-10-06 14:54:52
【问题描述】:

我编写了一个连接到 Oracle 数据库并更新数据的 perl 脚本。 perl 脚本的执行和与数据库的连接工作正常。

但是,我想将更新数据的日志导出到临时文本文件中。请提出解决方案。下面是我的代码,

use strict;
use DBD::Oracle;
use DBI;

my $driver = "Oracle";
my $database = "host=xxxxx;port=xxx;sid=xxxx";
my $dsn = "DBI:$driver:$database";
my $userid = "xxxxxx";
my $password = "xxxxx";

# Database Connection
my $dbh = DBI->connect($dsn, $userid, $password,{RaiseError => 1}) or die "Can't connect to the Database: $DBI::errstr";
my $sth = $dbh->prepare("UPDATE XXXX SET ABCD=1233 WHERE LOGIN BETWEEN SYSDATE-24*30 and SYSDATE-12*30") or die "$DBI::errstr";

$sth->execute() or die "couldn't execute statementn$!";
$sth->rows;

# End of Program
$sth->finish();
$dbh->disconnect();

【问题讨论】:

    标签: sql database oracle perl


    【解决方案1】:

    我建议更换

    $sth->execute() or die "couldn't execute statementn$!";
    

    通过

    unless ( $sth->execute() ) {
        open LOGFILE, ">>", /tmp/logs/perl.log or die "Could not open logfile\n";              
        print LOGFILE $ora->errstr;
        close LOGFILE; 
        die "couldn't execute statementn$!";
     }
    

    【讨论】:

    • 我已经按照上面的建议替换了unless ( $sth->execute() ){open (LOGFILE, '>>', 'perl.log') or die "Could not open logfile\n";print LOGFILE $ora->errstr;close LOGFILE;die "couldn't execute statementn$!";,但文件没有生成。因为我觉得数据没有被输入文件。
    • 也许对$dbh->prepare做同样的事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    相关资源
    最近更新 更多