TEXTを使用してください!sqliteデータ型について詳しくはこちらをご覧ください
TEXT =>値はテキスト文字列であり、データベースエンコーディング(UTF-8、UTF-16BE、またはUTF-16LE)を使用して保存されます。
SQLiteは、より一般的な動的型システムを使用します。SQLiteでは、値のデータ型は、コンテナーではなく、値自体に関連付けられています。SQLiteの動的型システムは、静的型付きデータベースで機能するSQLステートメントがSQLiteでも同じように機能するという意味で、他のデータベースエンジンのより一般的な静的型システムと下位互換性があります。ただし、SQLiteの動的型付けにより、従来の厳密に型指定されたデータベースでは不可能なことが可能になります。
それは注意しました:
SQLiteは、文字列、BLOB、または数値の長さに(大きなグローバルSQLITE_MAX_LENGTH制限を除いて)長さの制限を課しません。
ついに:
文字列またはBLOBの最大長
SQLiteの文字列またはBLOBの最大バイト数は、プリプロセッサマクロSQLITE_MAX_LENGTHによって定義されます。このマクロのデフォルト値は10億(1億または10億)です。次のようなコマンドラインオプションを使用して、コンパイル時にこの値を増減できます。
-DSQLITE_MAX_LENGTH = 123456789現在の実装は、231-1または2147483647までの文字列またはBLOBの長さのみをサポートします。また、hex()などの一部の組み込み関数は、その時点よりかなり前に失敗する可能性があります。セキュリティに敏感なアプリケーションでは、文字列とBLOBの最大長を増やそうとしないことをお勧めします。実際、可能であれば、文字列とBLOBの最大長を数百万の範囲に下げるとよいでしょう。
SQLiteのINSERTおよびSELECT処理の一部で、データベースの各行の完全なコンテンツが単一のBLOBとしてエンコードされます。したがって、SQLITE_MAX_LENGTHパラメーターは、行の最大バイト数も決定します。
sqlite3_limit(db、SQLITE_LIMIT_LENGTH、size)インターフェイスを使用して、実行時に最大文字列またはBLOBの長さを短くすることができます。