use strict; |
use DBI; |
use DBD::Oracle ; |
use warnings; |
use v5.16; |
|
my $threshold = shift; |
my $dbi_connect_string = "dbi:Oracle:"; |
my %connect_properties; |
$connect_properties{RaiseError} = 1; |
$connect_properties{PrintError} = 0; |
$connect_properties{AutoCommit} = 1; |
$connect_properties{ora_session_mode} = DBD::Oracle::ORA_SYSDBA; |
my $db_user=""; |
my $db_password=""; |
my $dbh = DBI->connect($dbi_connect_string, $db_user, $db_password,\%connect_properties); |
die "Unable for connect to server $DBI::errstr" unless $dbh; |
my $sth_1; |
my $SCN; |
$sth_1 = $dbh->prepare(" select current_scn from v\$database"); |
if($sth_1->execute) { |
$SCN=$sth_1->fetchrow; |
} |
my $sth_2; |
my $DRSCN; |
$sth_2 = $dbh->prepare(" select current_scn from v\$database\@testcdb_teststb"); |
if($sth_2->execute) { |
$DRSCN=$sth_2->fetchrow; |
} |
my $sth_3; |
$sth_3 = $dbh->prepare(" select extract( hour from diff) * 3600 + extract ( minute from diff ) *60 from (select scn_to_timestamp($SCN) - scn_to_timestamp($DRSCN) as diff from DUAL)"); |
if($sth_3->execute) { |
say "ORA-" if ( $sth_3->fetchrow > $threshold ) |
} |
$sth_1->finish(); |
$sth_2->finish(); |
$sth_3->finish(); |
$dbh->disconnect(); |