1

以下のように、Postgres データ型の長さ、精度、スケールを取得できました。

  SELECT c.column_name, c.data_type, c.character_maximum_length, c.numeric_precision
  c.numeric_scale, e.data_type AS element_type 
  FROM information_schema.columns c  
  LEFT JOIN information_schema.element_types e 
  ON ((c.table_catalog, c.table_schema, c.table_name, 'TABLE', c.dtd_identifier) = 
  (e.object_catalog, e.object_schema, e.object_name, e.object_type, 
  e.collection_type_identifier)) 

   WHERE c.table_schema ='Schema' AND c.table_name ='Table'

しかし、CHAR[]、BIT VARYING[]、VARCHAR[] などのすべての配列データ型の長さ、精度、スケールを取得できませんでした。

element_types の助けを借りて配列データ型を適切に取得することはほぼ完了しましたが、そのビューは配列データ型の長さ、精度、およびスケールを取得するのに役立ちません。

同じことについての私たちのコメントを教えてください。

注:Postgres 9.2を使用しています

ありがとう、ラヴィ

4

2 に答える 2

0

コメントのフォローアップ... psqlを使用してこの情報を特定できます。

-E または --echo-hidden オプションを指定して psql を実行すると、バックグラウンドで実行される非表示のシステム クエリが出力されます。

http://www.postgresql.org/docs/current/static/app-psql.html

次に、\d yourtable (または \d+ yourtable) を実行します。配列型の詳細を格納するものを含め、どの pg_catalog テーブルにどのような情報が含まれているかを正確に示します。

于 2013-10-22T20:06:05.767 に答える