问题是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_2
tovarchar(150)
和的数据类型text
。我也用过$dbh->quote($value_2)
. $value_2
但他们没有帮助。
为什么会这样?我该怎么办?谢谢!!