Perl 没有从数据库中读取全部值
Perl Not Reading Full Values from Database
我目前正在使用 DBI
模块连接到我的 MSSQL 数据库以从 table.
中提取一些数据
我试图拉取的行包含大量文本(它是 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
到一个文件,它显示为
数据被截断显示怪异是什么原因?
编辑:如何将 UTF16 转换为不在字符之间插入空格的格式?
除了 LongTruncOk
之外,您还需要设置 LongReadLen
。您已经告诉 DBI 可以从数据库中截断长结果,现在您需要告诉它您愿意接受多长的字符串。
我目前正在使用 DBI
模块连接到我的 MSSQL 数据库以从 table.
我试图拉取的行包含大量文本(它是 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
到一个文件,它显示为
数据被截断显示怪异是什么原因?
编辑:如何将 UTF16 转换为不在字符之间插入空格的格式?
除了 LongTruncOk
之外,您还需要设置 LongReadLen
。您已经告诉 DBI 可以从数据库中截断长结果,现在您需要告诉它您愿意接受多长的字符串。