sql >> データベース >  >> RDS >> Oracle

OracleJDBC文字セットと4000文字の制限

    Oracle 12.1より前は、VARCHAR2 列は、VARCHAR2(4000 CHAR)と宣言されている場合でも、データベースの文字セットに4000バイトのデータを格納するように制限されています。 。文字列内のすべての文字はUTF-8文字セットに2バイトのストレージを必要とするため、列に2000文字を超える文字を格納することはできません。もちろん、一部の文字が実際に1バイトのストレージしか必要としない場合、または一部の文字が2バイトを超えるストレージを必要とする場合、その数は変わります。データベースの文字セットがWindows-1252の場合、文字列内のすべての文字に必要なストレージは1バイトだけなので、列に4000文字を格納できます。

    文字列が長いので、列をCLOBとして宣言することは可能でしょうか。 VARCHAR2としてではなく ?これにより、(効果的に)長さの制限がなくなります(CLOBのサイズには制限があります) これは、Oracleのバージョンとブロックサイズによって異なりますが、少なくとも数GBの範囲です)。

    Oracle 12.1以降を使用している場合は、max_string_size パラメータを使用すると、の最大サイズを増やすことができます。 VARCHAR2 4000バイトから32767バイトまでの列



    1. MYSQL5.1での@DECLAREの使用

    2. Amazon RDSとMySQLを使用したEC2のそれぞれの利点/制限は何ですか?

    3. 2つのデータベースの構造を比較しますか?

    4. STUFF()を使用してSQLServerの別の文字列に文字列を挿入する方法