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_name
がnull
の場合、このプロシージャはユーザーによって定義されたすべての型を返します。input_type_name
がnull
の場合、このプロシージャはデータベース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_name
がnull
ではない場合、ユーザーがこのデータベースに対する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 |