카테고리:

시스템 함수 (정보)

SYSTEM$REFERENCE

오브젝트(테이블, 뷰 또는 함수)에 대한 참조 를 반환합니다. 오브젝트에 대한 참조에 대해 SQL 작업을 실행할 때 참조를 생성한 사용자의 역할을 사용하여 작업이 수행됩니다.

참고 항목:

SYSTEM$QUERY_REFERENCE

구문

SYSTEM$REFERENCE('<object_type>', '<object_identifier>',
  [ , <reference_scope> [ , '<privilege>' [ , '<privilege>' ... ] ] ] )
Copy

인자

필수 사항

object_type

오브젝트의 유형입니다. 다음 값 중 하나를 지정할 수 있습니다.

  • api_integration

  • database

  • external_table

  • function

  • materialized_view

  • pipe

  • procedure

  • schema

  • table

  • task

  • view

  • warehouse

object_identifier

오브젝트의 식별자입니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

식별자에 대한 자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

선택 사항

reference_scope

참조 범위를 지정합니다.

CALL 이거나 생략된 경우 참조는 자신이 생성된 컨텍스트 내에서 유효함을 지정합니다. 참조 범위 지정하기 섹션을 참조하십시오.

SESSION 인 경우 참조가 세션 기간 동안 유효해야 함을 지정합니다.

PERSISTENT 인 경우 오브젝트가 삭제될 때까지 참조가 유효해야 함을 지정합니다. 영구적 참조 를 확인하십시오.

참고: privilege 인자를 지정해야 하는 경우 reference_scope 인자가 필요합니다.

유효한 값:

  • CALL

  • SESSION

  • PERSISTENT

기본값: CALL

privilege

오브젝트에 대해 SQL 작업을 수행하는 데 필요한 추가 권한 입니다.

예를 들어 테이블에 행을 삽입하는 저장 프로시저에 테이블에 대한 참조를 전달한다고 가정합니다. 해당 테이블에 대한 INSERT 권한을 저장 프로시저에 부여하려면 'INSERT' 를 지정하십시오.

지원되는 오브젝트 및 권한 목록은 참조의 지원 오브젝트 유형과 권한 섹션을 참조하십시오.

둘 이상의 권한을 추가로 지정하려면 각 권한 이름을 함수에 대한 추가 인자로 전달하십시오. 예를 들어 INSERT, UPDATE 및 TRUNCATE 권한을 부여하려면 다음을 수행하십시오.

CALL myprocedure( SYSTEM$REFERENCE('TABLE', 'table_with_different_owner', 'SESSION', 'INSERT'. 'UPDATE', 'TRUNCATE'));
Copy

OWNERSHIP 또는 ALL을 권한으로 지정할 수 없습니다.

반환

식별자로 사용할 수 있는 참조의 직렬화된 문자열 표현.

사용법 노트

object_type 인자는 object_identifier 에서 지정한 오브젝트 유형과 일치해야 합니다.

문제 해결

다음 시나리오는 발생할 수 있는 문제를 해결하는 데 도움이 될 수 있습니다.

오류

505028 (42601): Object type <object_type> does not match the specified type <type_of_the_specified_object> for reference creation

원인

SYSTEM$REFERENCE 함수를 사용하여 참조를 생성하려고 하는데 object_type 인자가 object_identifier 에서 지정한 오브젝트 유형과 일치하지 않으면 함수가 실패합니다. 예를 들어, object_type 인자가 TABLE이지만 object_identifier 가 TABLE 이외의 오브젝트 유형(예: VIEW)으로 확인되면 함수가 실패합니다.

해결책

object_identifier 로 지정된 오브젝트 유형이 object_type 인자와 일치하는지 확인하십시오. 지원되는 오브젝트 유형 목록은 참조의 지원 오브젝트 유형과 권한 섹션을 참조하십시오.

간단한 예 섹션을 참조하십시오.