- カテゴリ:
テーブル関数 (オブジェクトモデリング)
GET_OBJECT_REFERENCES¶
指定されたオブジェクトが参照するオブジェクトのリストを返します。現在、入力はビューの名前に制限されています。
次の表は、現在出力で返されるデータベースオブジェクト型を示しています。
オブジェクト型 |
出力で返しますか? |
---|---|
テーブル |
はい |
ビュー(セキュアビューを含む) |
はい |
マテリアライズドビュー |
いいえ |
名前付きステージ(内部または外部) |
いいえ |
ストリーム |
いいえ |
ユーザー定義関数(UDF)/ユーザー定義テーブル関数(UDTF) |
いいえ |
構文¶
GET_OBJECT_REFERENCES(
DATABASE_NAME => '<string>'
, SCHEMA_NAME => '<string>'
, OBJECT_NAME => '<string>' )
引数¶
DATABASE_NAME => 'string'
スキーマとオブジェクトが存在するデータベースの名前です。
SCHEMA_NAME => 'string'
オブジェクトが存在するスキーマの名前です。
OBJECT_NAME => 'string'
オブジェクトの名前です。現在、ビューの名前(セキュアまたは非セキュア)に制限されています。
戻り値¶
この関数は、次の列を返します。
列名 |
データ型 |
説明 |
---|---|---|
DATABASE_NAME |
TEXT |
クエリされたオブジェクトを含むデータベースの名前です。 |
SCHEMA_NAME |
TEXT |
クエリされたオブジェクトを含むスキーマの名前です。 |
OBJECT_NAME |
TEXT |
クエリされたオブジェクトの名前です。 |
REFERENCED_DATABASE_NAME |
TEXT |
クエリされたオブジェクトが参照するオブジェクトを含むデータベースの名前です。 |
REFERENCED_SCHEMA_NAME |
TEXT |
クエリされたオブジェクトが参照するオブジェクトを含むデータベースの名前です。 |
REFERENCED_OBJECT_NAME |
TEXT |
クエリされたオブジェクトが参照するオブジェクトの名前です。 |
REFERENCED_OBJECT_TYPE |
TEXT |
REFERENCED_OBJECT_NAME 列で識別されるオブジェクトの型です。値には TABLE または VIEWが含まれます。 |
使用上の注意¶
この関数には次の権限が必要です。
ビューに対する SELECT。ビューの参照を取得するには、使用中のロールまたは使用中のロールに付与されたロールに、ビューに対する SELECT 権限が必要です。詳細については、 テーブル権限 および ビュー権限 をご参照ください。
セキュアビューに対する OWNERSHIP。依存関係チェーンがセキュアビューを参照する場合、使用中のロール、または使用中のロールに付与されたロールは、セキュアビューに対する OWNERSHIP 権限を持っている必要があります。それ以外の場合、Snowflakeは次のエラーメッセージを返します。
Insufficient privileges to operate on view '<view_name>'
DATABASE_NAME
、SCHEMA_NAME
、およびOBJECT_NAME
の値は一重引用符で囲む必要があります。また、これらの名前にスペース、大/小文字混合、または特殊文字が含まれている場合、名前は二重引用符を一重引用符で囲む必要があります(例:'"My DB"'
対'mydb'
)。ビューがステージ、 UDFs、またはマテリアライズドビューを参照する場合、この関数は、参照されたテーブルとビューのリストを返すのではなく、エラーを返します。
例¶
ビューのために参照のリストを返します。
-- create a database create or replace database ex1_gor_x; use database ex1_gor_x; use schema PUBLIC; -- create a set of tables create or replace table x_tab_a (mycol int not null); create or replace table x_tab_b (mycol int not null); create or replace table x_tab_c (mycol int not null); -- create views with increasing complexity of references create or replace view x_view_d as select * from x_tab_a join x_tab_b using ( mycol ); create or replace view x_view_e as select x_tab_b.* from x_tab_b, x_tab_c where x_tab_b.mycol=x_tab_c.mycol; --create a second database create or replace database ex1_gor_y; use database ex1_gor_y; use schema PUBLIC; -- create a table in the second database create or replace table y_tab_a (mycol int not null); -- create more views with increasing levels of references create or replace view y_view_b as select * from ex1_gor_x.public.x_tab_a join y_tab_a using ( mycol ); create or replace view y_view_c as select b.* from ex1_gor_x.public.x_tab_b b, ex1_gor_x.public.x_tab_c c where b.mycol=c.mycol; create or replace view y_view_d as select * from ex1_gor_x.public.x_view_e; create or replace view y_view_e as select e.* from ex1_gor_x.public.x_view_e e, y_tab_a where e.mycol=y_tab_a.mycol; create or replace view y_view_f as select e.* from ex1_gor_x.public.x_view_e e, ex1_gor_x.public.x_tab_c c, y_tab_a where e.mycol=y_tab_a.mycol and e.mycol=c.mycol; -- retrieve the references for the last view created select * from table(get_object_references(database_name=>'ex1_gor_y', schema_name=>'public', object_name=>'y_view_f')); +---------------+-------------+-----------+--------------------------+------------------------+------------------------+------------------------+ | DATABASE_NAME | SCHEMA_NAME | VIEW_NAME | REFERENCED_DATABASE_NAME | REFERENCED_SCHEMA_NAME | REFERENCED_OBJECT_NAME | REFERENCED_OBJECT_TYPE | |---------------+-------------+-----------+--------------------------+------------------------+------------------------+------------------------| | EX1_GOR_Y | PUBLIC | Y_VIEW_F | EX1_GOR_Y | PUBLIC | Y_TAB_A | TABLE | | EX1_GOR_Y | PUBLIC | Y_VIEW_F | EX1_GOR_X | PUBLIC | X_TAB_B | TABLE | | EX1_GOR_Y | PUBLIC | Y_VIEW_F | EX1_GOR_X | PUBLIC | X_TAB_C | TABLE | | EX1_GOR_Y | PUBLIC | Y_VIEW_F | EX1_GOR_X | PUBLIC | X_VIEW_E | VIEW | +---------------+-------------+-----------+--------------------------+------------------------+------------------------+------------------------+