【问题标题】:Perl DBI: Result value cut offPerl DBI:结果值被截断
【发布时间】:2013-01-10 05:01:22
【问题描述】:

我目前遇到一个问题,即使用下面的选择从数据库中提取的长字符串被截断。在下面的语句中,当我在 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()) {
  ...
}

【问题讨论】:

  • 哪个 DBD 以及该字段的类型是什么?

标签: perl dbi


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 2010-11-03
    • 2019-12-19
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2017-06-30
    相关资源
    最近更新 更多