我有关于连接数据库的问题。我执行命令行如下:
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检查数据库中的侦听器日志中没有任何错误。 因此,如果有人能够解决或找出原因,请告诉我。
答案 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";