Проблема в том, что DBI
в insert
оставляет длинную строку усеченной при вставке на сервер MS SQL. Вот мои коды:
my $insert = $dbh->prepare("INSERT INTO my_table (field_1, field_2) values (?, ?)");
$insert->execute($value_1, $value_2);
где field_2
имеет тип данных varchar(100)
, а $value_2
представляет собой текстовую строку из 90 символов с пробелами, но без других специальных символов.
После того, как оператор был выполнен без каких-либо ошибок, я проверил базу данных и, по-видимому, фактическое вставленное $value_2
усекается до 80-го символа, который находится в середине обычного английского слова (т.е. не специального персонаж).
Я пытался изменить тип данных field_2
на varchar(150)
и text
. Я также использовал $dbh->quote($value_2)
вместо $value_2
. Но они не помогли.
Почему это происходит? Что я должен делать? Спасибо!!