【发布时间】:2012-08-06 16:06:59
【问题描述】:
我想使用 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时,一切正常。
顺便说一句,当我使用其他 $Directive 时,例如“SELECT * FROM ID_TABLE WHERE ID=?”,可以毫无问题地传入参数 $ID。
【问题讨论】:
-
尝试与
RaiseError => 1连接。某些驱动程序不支持视图中的参数(但不确定 Oracle)。