問題はDBI
のinsert
がMS SQLサーバーに挿入するときに長い文字列を切り捨ててしまう問題です。ここに私のコードは次のとおりです。field_2
はvarchar(100)
と$value_2
のデータ型を持つperl DBI insertを使用してテキストを切り捨てました
my $insert = $dbh->prepare("INSERT INTO my_table (field_1, field_2) values (?, ?)");
$insert->execute($value_1, $value_2);
は90個のスペースを含む文字が、いないその他の特殊文字のテキスト文字列です。
エラーは発生しませんと文が実行された後、私は、データベースをチェックし、明らかに実際に挿入$value_2
は、定期的な英語の単語(すなわちない特殊文字の真ん中にある第80文字、で切り捨てられ)。
field_2
をvarchar(150)
とtext
に変更しようとしました。私は$value_2
の代わりに$dbh->quote($value_2)
も使用しました。しかし、彼らは助けにはなりませんでした。
どうしてですか?私は何をすべきか?どうも!!
接続でRaiseErrorが設定されていることは間違いありませんか?これはどんなプラットフォームですか?どのDBDを使用していますか? – bohica
毎回同じ文字列が影響を受けているのですか?これは、入力した文字列に関係なく発生します。 – shaneburgess
入力データはどのような文字エンコーディングですか?あなたのデータベースは、どの文字エンコーディングを期待していますか? –