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 |
