9

Oracle では CHAR と VARCHAR2 に大きな違いはないことを説明するAsk Tom の記事を見つけました。ISO 639-1 言語コードであっても、文字列を格納するすべての列に VARCHAR2(4000 BYTE) を使用する必要があるという印象を受けました。違いはありません。

ISO 639-1 言語コードに CHAR(2) を使用して、基本的なデータ制約を強制することが理にかなっていることはわかっています。'xy'しかし、有効な言語コードではない列への格納を許可するため、これは十分な制約ではありません。一方で、アプリケーションを変更して ISO 639-2 言語コード (3 文字を必要とする) を使用する場合は、データベースを変更する必要があるという制限付きで、この基本的な制約の代価を払っています。そのため、データベース レベルからは制約をまったく削除する傾向があります。これは、メリットよりもコストの方が高いように思われるからです。

それを念頭に置いて、Oracle データベースに格納する予定の 4000 バイトより短い文字列に VARCHAR2(4000 BYTE) を使用すべきではない他の重要な理由があるかどうか疑問に思っています。

4

1 に答える 1

6

Tom Kyte もあなたの提案に反論しています: https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1145132537055

于 2012-12-13T11:30:30.403 に答える