카테고리:

테이블 함수 (오브젝트 모델링)

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가 포함됩니다.

사용법 노트

  • DATABASE_NAME, SCHEMA_NAME, OBJECT_NAME 값은 작은따옴표로 묶어야 합니다. 또한, 이러한 이름에 공백, 대/소문자 혼합 문자 또는 특수 문자가 포함된 경우, 이름을 작은따옴표 안에 큰따옴표로 묶어야 합니다(예: '"My DB"' vs 'mydb').

  • 지정된 오브젝트가 Information Schema, Account Usage, Organization Usage 스키마의 뷰를 포함하여 종속성 체인의 모든 위치에서 보안 뷰를 참조하고, 쿼리 실행 역할이 보안 뷰를 소유하지 않는 경우(즉, 보안 뷰에 대한 OWNERSHIP 권한이 없음) 쿼리는 다음 오류를 반환합니다.

    Insufficient privileges to operate on view '<view_name>'
    
  • 뷰가 스테이지, UDF 또는 구체화된 뷰를 참조하는 경우, 이 함수는 참조된 테이블 및 뷰 목록을 반환하는 대신 오류를 반환합니다.

뷰에 대한 참조 목록을 반환합니다.

-- 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                   |
+---------------+-------------+-----------+--------------------------+------------------------+------------------------+------------------------+
맨 위로 이동