質問
Oracleは、どういう違い:
CREATE TABLE CLIENT
(
NAME VARCHAR2(11 BYTE),
ID_CLIENT NUMBER
)
や
CREATE TABLE CLIENT
(
NAME VARCHAR2(11 CHAR), -- or even VARCHAR2(11)
ID_CLIENT NUMBER
)
解決
ないということにデータベースの文字セットはUTF-8"を推奨設定の最近のバージョンのOracle.この場合、文字によると、1バイトのデータベースです。
設定されていない場合は、分野として VARCHAR2(11 BYTE)
, Oracleにすることができ11バイトレンがいませんが実際にできる店11文字の分野で世界一部によると、バイト店など英語以外の文字です。
を定義する分野として VARCHAR2(11 CHAR)
をしないといけないと考えていOracle使用でき十分なスペース11、文字どんなに多くのバイトで格納します。単一の文字が必要です4バイトです。
他のヒント
一つは正確にスペース11バイト、その他のじ11文字です。一部の文字セットなどのUnicode variantを使用複イトchar、そのため、11byteフィールドが空間未満11文字数によってエンコーディングです。
によってシステム構成、サイズのCHAR mesuredバイト単位が変動する可能性も存在する。おの例:
- 制限の分野11 バイト
- 制限の分野11 CHARacters
結論:1CHARするものではなく、1バイトになります。
いかなるOracleユーザーがいるに違いはご利用の際のマルチバイト文字セットなどのUnicode(UTF-16/32).この場合、11バイト数が未満11文字です。
でもその分野の種類が使ってアクセント文字の場合、例えば'binaryField(エ)="été"'と一致しなくなりながらcharField(エ)="été"'が再度必要な場合はOracle).
所属していません StackOverflow