ORA-03135:从Perl准备sql时连接失去联系

时间:2017-09-08 06:09:27

标签: oracle perl

我有关于连接数据库的问题。我执行命令行如下:

Auth

有时,它发生了如下错误:

$Oracle_Dbh = DBI->connect("dbi:Oracle:$two_task", $Oracle_User, $Oracle_Password, 
     { RaiseError => 0 , AutoCommit => 0, PrintError => 0});
$HNDL_TABLE = $Oracle_Dbh->prepare("select * from MMSC40_CDR where rownum<=1");
my $err="";
if(!$HNDL_TABLE){
    $err = $Oracle_Dbh->errstr;
    $exists = 0;
}

if (!$exists){
    print "error: $err";
}

和DBA检查数据库中的侦听器日志中没有任何错误。 因此,如果有人能够解决或找出原因,请告诉我。

1 个答案:

答案 0 :(得分:1)

我没有设置来测试这个,但我猜你得到了这个错误,因为你准备了查询但没有执行它:

$HNDL_TABLE->execute() or die "Couldn't execute query: $Oracle_Dbh->errstr";

最好在查询准备中使用占位符?,然后使用值执行:

$HNDL_TABLE = $Oracle_Dbh->prepare("select * from MMSC40_CDR where rownum<=?");
$HNDL_TABLE->execute(1) or die "Couldn't execute query: $Oracle_Dbh->errstr";