カテゴリ:

テーブル関数 (オブジェクトモデリング)

GET_OBJECT_REFERENCES

指定されたオブジェクトが参照するオブジェクトのリストを返します。現在、入力はビューの名前に制限されています。

次の表は、現在出力で返されるデータベースオブジェクト型を示しています。

オブジェクト型

出力で返しますか?

テーブル

はい

ビュー(セキュアビューを含む)

はい

マテリアライズドビュー

いいえ

名前付きステージ(内部または外部)

いいえ

ストリーム

いいえ

ユーザー定義関数(UDF)/ユーザー定義テーブル関数(UDTF)

いいえ

構文

GET_OBJECT_REFERENCES(
  DATABASE_NAME => '<string>'
  , SCHEMA_NAME => '<string>'
  , OBJECT_NAME => '<string>' )
Copy

引数

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>'
      
      Copy
  • DATABASE_NAMESCHEMA_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                   |
+---------------+-------------+-----------+--------------------------+------------------------+------------------------+------------------------+
Copy