0

現在、以下の選択でデータベースからフェッチされた長い文字列が切り捨てられるという問題が発生しています。以下のステートメントでは、while ループで出力すると 115 文字の後に val1 が途切れますが、表では文字列は 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" の値を "prepare" した後に変更しても、通常は効果がないため、"prepare" を呼び出す前に $dbh に "LongReadLen" を設定するのが一般的です。

于 2013-01-09T21:01:22.347 に答える