问题是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 个字符的文本字符串。
语句执行后,没有出现错误,我检查了数据库,显然实际插入的字符在第80 个$value_2字符处被截断,该字符位于常规英文单词的中间(即不是特殊字符)。
我试图改变field_2tovarchar(150)和的数据类型text。我也用过$dbh->quote($value_2). $value_2但他们没有帮助。
为什么会这样?我该怎么办?谢谢!!