我想使用Perl DBI自动创建基于数据库的视图。相关的代码是类似以下,使用perl DBI创建视图时无法传入参数
my $dbh = DBI->connect("dbi:Oracle:$database", $user_passwd);
my $Directive = q{ CREATE OR REPLACE VIEW SOME_VIEW AS SELECT * FROM ID_TABLE WHERE ID=?};
my $ID = 12345;
my $sth = $dbh->prepare($Directive);
my $rv = $sth->execute($ID);
然后我发现$rv
总是undef
后,我运行的代码。我在代码中犯了什么错误?当我把参数直接放入$Directive
时,一切都很好。
BTW,当我使用一些其他的$指令,如 “SELECT * FROM ID_TABLE WHERE ID =?”,参数$ ID,可以在没有任何问题过去了。
尝试使用'RaiseError => 1'连接。有些驱动程序不支持视图中的参数(不过,不确定Oracle)。 – choroba 2012-08-06 16:17:58