DB2テーブルにCLOB(50000)フィールドを作成し、それが正しく作成されたことを確認しました。
DB2 DESCRIBE TABLE dbname
...ただし、フィールドに40,000文字の文字列を挿入しようとしただけでも、次のエラーメッセージが表示されました。
[IBM][CLI Driver][DB2/LINUXX8664] SQL0102N The string constant beginning with
"'''Testing Long Notes! Testing Long Notes! Testing Long Notes! Testing" is too long.
SQLSTATE=54002 SQLCODE=-102
「長い音符をテストします!」これは、40,000の文字列長を作成するために、HTMLフィールドで何度も繰り返した文字列です。 PHPスクリプトは、投稿されたHTMLフォームを処理し、SQL INSERTを試行しますが、エラーが発生します。
ここで何が欠けていますか? CLOB(50000)設定をオーバーライドする最大フィールドサイズが設定されている場所は他にありますか?おそらく、フィールドサイズを制御するための構成アイテムですか?
クライアントがMySQLからの変換を必要とした後、私はDB2に比較的慣れていません。
値を自分でクエリに連結する代わりに、 プリペアドステートメント を使用する必要があります。これは、グッドプラクティスとしてMySQLにも当てはまります。プリペアドステートメントは、SQLインジェクションからユーザーを保護します。
DB2は、32,000文字を超える生の照会の処理を拒否します。