Perl没有从数据库中读取完整值

时间:2015-06-24 20:03:22

标签: sql-server perl odbc

我目前正在使用DBI模块连接到我的MSSQL数据库以从表中提取一些数据。

我想要提取的行包含大量文本(类型为ntext,最多可包含6Mb的文本)。

我的查询目前非常简单:

my $sql = "SELECT TOP 1 [reportRow] from UsageReport";

我也为数据库选项启用了LongTruncOk

执行查询后,我想显示行。

while ( my @row = $sth->fetchrow_array ) {
   print "@row\n";
}

不幸的是,它以非常奇怪的方式显示数据,每个字符之间都有空格,它只检索前40个字符。

< r e p o r t > < r e p o r t h e a d e r > < m o n t h > O c t o b e r   2 0

如果我使用File::Slurp@row输出到文件,则显示为

enter image description here

是否存在数据被切断且显示奇怪的原因?

编辑:如何将UTF16转换为不在字符之间插入空格的格式?

1 个答案:

答案 0 :(得分:1)

除了LongReadLen之外,您还需要设置LongTruncOk。您告诉DBI,可以从数据库中删除长期结果,现在您需要告诉它您愿意接受多长时间的字符串。