0

我目前遇到一个问题,即使用下面的选择从数据库中获取的长字符串被截断。在下面的语句中,当我在 while 循环中将 val1 打印出来时,val1 在 115 个字符后被切断,但在表中,字符串是 300 个字符。

我需要调整任何 Perl 模块配置参数吗?

谢谢!

my $sql = "SELECT val1 FROM TABLE";
my $sth = $dbh->prepare($sql)
    or die "Can't prepare statement: $DBI::errstr";
$sth->execute() or die "Cannot execute: " . $sth->errstr();
$sth->{'LongTruncOk'} = 1;
$sth->{'LongReadLen'} = 20000;
while(my @row = $sth->fetchrow_array()) {
  ...
}
4

1 回答 1

5

根据DBI 文档,您必须在准备之前设置 LongReadLen(并且可能是 LongTruncOk)。

在“准备”之后更改语句句柄的“LongReadLen”值通常不会产生任何效果,因此通常在调用“准备”之前在 $dbh 上设置“LongReadLen”。

于 2013-01-09T21:01:22.347 回答