GET_USER_DEFINED_TYPES

説明

ストアドプロシージャ GET_USER_DEFINED_TYPES は、各型に関する情報を返します。各行は、型を表します。

複合フィールド (レジスターおよび配列) を含むビューを作成する場合、Administration Tool は複合フィールド用の型を自動的に作成します。

特定の型の構造を取得する場合は、 GET_TYPE_ATTRIBUTES プロシージャを使用してください。

構文

GET_USER_DEFINED_TYPES (
      input_database_name : text
    , input_type_name : text
)
  • このプロシージャを CALL で呼び出し、パラメーターでフィルターしない場合は、 null を渡します。

  • このプロシージャは、等号の代わりに LIKE 演算子を使用して input_type_name パラメーターを評価します。そのため、このパラメーターの値には、LIKE とともに使用するワイルドカード演算子 (%_) を使用できます。

  • input_database_name および input_type_namenull の場合、このプロシージャはユーザーによって定義されたすべての型を返します。

  • input_type_namenull の場合、このプロシージャはデータベース input_database_name 上でユーザーによって定義されたすべての型を返します。


このプロシージャは、以下のフィールドを返します。

  • database_name: 型が属すデータベースの名前。

  • type_name: 型の名前。

  • vdp_type: register または array のいずれかです。

  • sql_type: JDBC API に準拠した型の型名。 STRUCT または ARRAY のいずれかです。

  • sql_type_code: JDBC API に準拠した型の型を表す整数。レジスターは 2002 、配列は 2003 です。

必要な権限

このプロシージャの結果は、それを実行するユーザーに付与されている権限によって異なります。

ユーザーが管理者ユーザーではない場合、以下の点に注意してください。

  • パラメーター input_database_namenull ではない場合、ユーザーがこのデータベースに対する CONNECT 権限および EXECUTE 権限を持っていないと、このプロシージャはエラーを返します。

  • クエリが input_database_name に値を渡さない場合、このプロシージャは、ユーザーが CONNECT 権限および EXECUTE 権限を持っているデータベース上で作成された型に関する情報のみを返します。

SELECT database_name, type_name, vdp_type, sql_type, sql_type_code
FROM GET_USER_DEFINED_TYPES()
WHERE input_database_name='chinook'

結果は以下のとおりです。

database_name

type_name

vdp_type

sql_type

sql_type_code

chinook

_register_text

register

STRUCT

2002

chinook

_register_ArtistId_Name

register

STRUCT

2002

chinook

_array_register_text

array

ARRAY

2003

chinook

_array_register_ArtistId_Name

array

ARRAY

2003

chinook

relation_link

register

STRUCT

2002