私のWebアプリケーションでは、DBテーブル(Oracle)のCOLUMNにテキストメッセージを保存しています。以前のVARCHAR2の長さ(最大長)は(500バイト)です。クライアントから、最大長を4000文字に増やすように求められました。
DBテーブルの列に4000文字を保存することは可能ですか、それともBLOBとして保存する必要がありますか。
どちらがより良いパフォーマンスをもたらしますか?
誰かがこれを明確にできますか?
3 に答える
CLOBを確認しましたか。大きなテキストを保存する場合、OracleはCLOBを推奨します。
CLOB(Character Large Object)は、最大4GBのデータを保持できるOracleデータ型です。CLOBは、テキストを格納するのに便利です。
Oracleには1列に4000バイトの制限があり、その制限VARCHAR2
を回避する方法はありません。
したがって、シングルバイトVARCHAR2
文字セットを使用している場合は、列に4000文字しか格納できません。
UTF8またはその他のマルチバイト文字セットを使用している場合は、4000文字を格納できない場合があります(一部の文字には複数のバイトが必要なため)。列をとして定義しても、その制限を超えることはありVARCHAR2(4000 Char)
ません。
実際にマルチバイト文字セットを使用している場合は、CLOB
列を使用する必要があります。そうしないと、4000文字を格納できません(gTitoによって提案されているように)。
1バイトの文字セットを使用している場合は、VARCHAR2(4000 Char)
列を使用する必要があります。
SQLクエリによってファイルされたものを検索する必要がある場合は、varchar2である必要があります。それ以外の場合は、clob/blobの方が適しています。