[pgsql-jp: 25863] Re: dbExpe・・・ありがとう御座いました

Naofumi Kondoh nkon @ shonan.ne.jp
2002年 5月 7日 (火) 19:39:21 JST


ソフト工房の近藤です。阿部さん、お久しぶりです。

ABE Masanori wrote:

-- snip --

> Postgresの numeric(あるいはdecimal) はOracleの NUMBER と同じみたいで
> す。

オーム社 O'REILY の SQL クイックリファレンスによると、
Oracle number 型は、precision が、38 迄となっています。

PostgreSQL の numeric の precision は、1000 でもOK。
CREATE TABLE hoge(nn numeric(1000,500)); 
なんて可能です。
まあ、事務処理では 1,000 桁もの十進数を扱うことはない
ですが、極めて大きな精度の数値を扱う用途には便利。

[注]O'REILY の SQL クイックリファレンス Page.24
の下記記述は間違いですね。昔の規格で出ています。
(誤)  numeric(p,s)  p=9 s=0 

 
> >DECIMAL(10,4) とすると、全10桁の小数点以下4桁、という意味だったと思います
> >が、 MS-SQL では小数点も含めて10桁(整数部5桁、小数点以下4桁)だったと思う
> >のですが(記憶違いかもしれません!)、PostgreSQL では整数部6桁+小数部4桁にな
> >ります。
> ちなみに、「小数点(を含めて)」ではなく「符号(を含めて)」だと思いますが
> ・・・

ANSI SQL92 の規格では、NUMERIC(p,s) の場合、整数部桁数
+小数部桁数が p です。符合や小数点は含まれません。
numeric(5,2) の場合、-999.99 から 999.99  まで格納できます。

NUMERIC と DECIMAL の SQL 規格上の相違は、NUMERIC が、
正確な precision を保持するのに対して、DECIMAL では、
処理系の都合により、指定した precision より大きな値を
とってもよいというだけの相違です。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 (株)ソフト工房   近藤直文        Email:  nkon @ shonan.ne.jp 
  《 PostgreSQL+PHPソースコードジェネレーターデモGPL版 》
           http://www.SOFTKOUBOU.co.jp/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/



pgsql-jp メーリングリストの案内