忍者ブログ
[PR] ()
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

by
セマンティクス (技術メモ@Oracle)
全然知らなかったのですが、今時ってVARCHAR2(5)とかの時に
全角半角問わず5文字入るんですね。
っていうのがこの話の発端です。

これは実はセマンティクスという物に依存しているようです。
今までは全角だとDBの項目長の半分までしか入力できないっていうのが
当たり前なシステムばっかやってたのでセマンティクスなんて知りませんでした。

セマンティクスにはバイトセマンティクスと文字(キャラクタ)セマンティクスがあり、
バイトの方が私が今までやってた方で、今回知ったのがキャラクタの方です。
キャラクタの方は文字数をベースとしているので5文字までだったら
全角も半角も5文字までは入るようです。
バイト指定の方はバイト単位で指定するので文字数制限がかかってきますが、
キャラクタ指定だと文字数制限はかからない分バイトがかさみそうです。

セマンティクスはNLS_LENGTH_SEMANTICSという初期化パラメータで設定されるらしく、
デフォルトではバイトのようです。

ちなみに余り見かけないNVARCHAR2というのはキャラクタセマンティクスで定義した
VARCHR2のようです。
つまり文字数で指定するタイプですね。
VARCHAR2自体もVARCHAR2(5 CHAR)とかすると
キャラクタセマンティクスになるみたいです。

キャラクタセマンティクスだとHTMLのmaxlengthとVARCHAR2で指定するサイズが
一致するので分かりやすいですね。
あと、Java側もただのlengthでいいし。
PR
by yy3Trackbacks()Comments(0)
Comments
Comment Form
Subject

Name

Mail

Web

Pass
Comment

Trackbacks
Trackback Address
メモとか
MASTER : yy3
カレンダー
11 2025/12 01
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
最新記事
(10/28)
(08/18)
(07/27)
(07/27)
(07/15)
ブログ内検索
アクセス解析
OTHERS
Powered by 忍者ブログ
Designed by TABLE ENOCH
[PR]

△ページの先頭へ