我目前遇到的问题是,从db中获取的带有下面选择的长字符串会被截断。在下面的语句中,当我在while循环中打印出来时,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()) {
...
}
答案 0 :(得分:5)
根据DBI documentation,你必须在准备之前设置LongReadLen(以及可能的LongTruncOk)。
在语句句柄“准备”之后更改“LongReadLen”的值通常没有效果,因此在调用“prepare”之前在$ dbh上设置“LongReadLen”是很常见的。