- - PR -
PostgreSQL 8.0 列が保持する小数点位置の取得
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-10-20 11:36
いつもお世話になっています。
さっそくですが、numeric型の列の定義で長さを10,精度を5とし追加し、この列の小数点位置を取得したいのですが、どのようにして小数点位置を取得できるのでしょうか? pg_catalogスキーマの各テーブルを調べても見当たりませんでした。リファレンスを見てもヒントになる文章が見当たりません。 ご存知の方がいらっしゃれば、ご教授いただきたいです。よろしくお願いします。 |
|
投稿日時: 2005-10-20 12:45
http://www.shonan.ne.jp/~nkon/study/catalog/catalogtest.html
に載っていたやり方でできるのではないでしょうか? オレの環境(Postgres8.0)を用いて (pg_attribute.atttypmod-4) / 65536 で長さが取得でき、 ((pg_attribute.atttypmod-4) % 65536) で精度が取得できるのは 確認しました。 |
|
投稿日時: 2005-10-22 11:13
夏椰さん、ご返答ありがとうございます。
リンクされていたページで紹介されている方法で長さ、精度を取得することが出来ました。 取得方法は下記の通りです。 select (pg_attribute.atttypmod-4) / 65536 as 桁数, ((pg_attribute.atttypmod-4) % 65536) as 精度 from pg_attribute where attrelid = '356555' and -------------- 列が所属するテーブルのオブジェクトID atttypid = '1700' and -------------- データ型のオブジェクトID attstattarget = '-1' -------------- 列の統計情報 夏椰さん、ご教授いただき、ほんとうにありがとうございました。 |
1
