数値型 NUMBER
Oracleでは数値型を扱うことができます。Oracleの数値型は「NUMBER型」です。
数値型は他にFLOAT型がありますが、使用することはあまりないため、NUMBER型をおさえておけばOKです。
構文
NUMBER(整数+小数の桁数、小数の桁数)
整数・小数の数値型をあらわします。
例1. NUMBER型(整数のみ)のパターン
--整数3桁のNUMBER型 CREATE TABLE tbl1 (s_no NUMBER(3,0)); --INSERT INSERT INTO tbl1 VALUES (999);
s_no |
999 |
ここでは「s_no」が整数3桁のNUMBER型として作成しました。整数3桁なのでMAX「999」もINSERTできます。
例2. NUMBER型(整数・小数)のパターン
--整数3桁・小数3桁のNUMBER型 CREATE TABLE tbl1 (s_no NUMBER(6,3)); --INSERT INSERT INTO tbl1 VALUES (999.999); --INSERTエラー INSERT INTO tbl1 VALUES (99999.999);
s_no |
999.999 |
ここでは「s_no」が整数3桁・小数3桁のNUMBER型として作成しました。
OarcleのSQLは、整数3桁・小数3桁はNUMBER(6,3)と書きます。NUMBER(3,3)ではないので注意が必要です。
整数3桁・小数3桁なのでMAX「999.999」もINSERTできます。「9999.999」は桁あふれなのでエラーとなります。
例3. NUMBER型(整数・小数マイナス)のパターン
--NUMBER型 CREATE TABLE tbl1 (s_no NUMBER(6,-3)); --INSERT INSERT INTO tbl1 VALUES (1111.111);
s_no |
1000 |
ここでは「s_no」が整数6桁(丸め3桁)のNUMBER型として作成しました。
NUMBER型の第2パラメータが「-3」になっています。これは整数3桁で丸めるという意味です。そしてこの場合、整数部分は純粋に整数桁となり、整数6桁となります。
整数6桁(丸め3桁)に「999.999」をINSERTすると整数3桁で丸められ、「1000」となります。
以上、Oracleの数値型「NUMBER」の解説でした。
コメント
全般的に、CREATE TABLE 「tbl」なのに、INSERT INTO「tbl1」とテーブル名が異なるのはおかしいと思います。
また「例3. NUMBER型(整数・小数マイナス)のパターン」で、
–INSERTエラー
INSERT INTO tbl1
VALUES (1111.111);
の部分は、テーブル名が「tbl」だったとして、INSERTエラーにはならずに「1000」で入ります。
実際に実行してみたのでしょうか・・・
INSERTエラーにならず「1000」になる件は本文と結果に書いてあります。
テーブル名・コメントに誤りがあったため修正しました。
ご指摘ありがとうございます!