2015年11月11日水曜日

PLSQL 変数の精度について

以前の記事で「PLSQL 変数、定数 」で簡単に変数の使い方を書きました。
よく使う変数のデータ型に以下のようなものがあります。(他にもありますが、私が今のところよく使うのはこれだけ)
  • NUMBER
  • VARCHAR2
  • CHAR
  • DATE
  • BOOLEAN

このうち精度を指定するのはNUMBER型、VARCHAR2型、CHAR型です。
DECLARE
    numValue NUMBER(10);
    strValue VARCHAR(10);
    charValue CHAR(10);
    dateValue DATE;
    boolValue BOOLEAN;
BEGIN    
    
    NULL;
    
END;
NUMBER(10)型を設定した変数は10桁の数値が代入できます。
VARCHAR2(10)型を設定した変数は10バイトの文字列が代入できます。
CHAR(10)型を設定した変数は10バイトの文字列が代入できます。

データ型により精度を省略できるものがあります。

NUMBERは精度を指定しないと最大の38桁の数値が代入できます。

CHARは精度指定しないと1バイトの文字が代入できます。
VARCHAR2は精度を指定しないとエラーになります。


NUMBER型の精度が省略できるならVARCHAR2も省略できるハズ~♪と思ったのは私だけではないと思うんだけどなぁ。
ちょっとググるとCHARの精度を省略したら最大バイトになると思っていたナカマがいたぁ ヾ(´∇`。*)ノ 

ちなみにVARCHAR2とCHARに指定できる精度は32767が上限です。



【関連】
PLSQL 変数、定数

0 件のコメント: