Я запускаю этот сценарий в CentOS версии 7 с пакетом perl DBI версии 1.640. База данных, в которую он вставляет: SQL Сервер:
#!/usr/local/bin/perl
use DBI;
my $user = "my_user";
my $pw = 'my_pass';
my $dsn = "dbi:Sybase:server=MYSERVER;database=MY_DB";
my $dbh = DBI->connect($dsn,$user,$pw);
$dbh->{'PrintError'}=1;
my $command;
my $rpttxt = "Lorem ipsum dolor sit amet..." [4410 character string length]
print STDOUT "len:",($len=length $rpttxt),"\n";
$command = "INSERT INTO testrpt (reporttext) VALUES (?)";
$dbh->do($command, undef, $rpttxt);
$dbh->disconnect;
Когда я запускаю сценарий, он сообщает фактическую длину $rpttxt
, которая равна 4410. Тем не менее, после вставки, если я запускаю запрос выберите len(reporttext) from testrpt
в SQL Server Management Studio, он сообщает о длине 4000. Точно.
Если я выполняю вставку непосредственно на SQL сервере, последующий запрос длины сообщает о длине 4410.
Есть идеи о том, как поставить диагноз?