SYSTEM$REFERENCE

SYSTEM$REFERENCE

SYSTEM$REFERENCE() 함수는 객체(테이블, 뷰 또는 함수)에 대한 참조(reference)를 반환해요. 객체에 대한 참조로 SQL 작업을 실행하면 그 작업은 참조를 만든 사용자의 역할로 수행돼요.

참고

이 함수를 호출하는 대신, 수정할 계획이 없는 객체에 대한 참조를 만들 필요가 있고(예: 저장 프로시저가 조회할 테이블을 전달하는 경우) 그 참조가 전체 세션이 아니라 호출 범위 동안 유효하기를 원한다면 TABLE 키워드를 사용할 수 있어요. TABLE 키워드로 테이블·뷰·쿼리에 대한 참조 만들기를 참고하세요.

출처: Snowflake SQL Reference

본문

문법

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

인자

필수: object_type, object_identifier

선택: reference_scope, privilege

반환

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

사용 메모

'object_type' 인자는 object_identifier가 지정한 객체의 타입과 일치해야 해요.

문제 해결

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

Error 505028 (42601): Object type <object_type> does not match the specified type <type_of_the_specified_object> for reference creation
Cause SYSTEM$REFERENCE 함수로 참조를 만들려고 할 때 object_type 인자가 object_identifier가 지정한 객체의 타입과 일치하지 않으면 함수가 실패해요. 예를 들어, object_type 인자가 TABLE인데 object_identifier가 TABLE이 아닌 객체 타입(예: VIEW)으로 해석되면 함수가 실패해요.
Solution object_identifier가 지정한 객체의 타입이 object_type 인자와 일치하는지 확인하세요. 지원되는 객체 타입 목록은 참조에 대한 지원되는 객체 타입과 권한을 참고하세요.

예제

저장 프로시저에 객체와 쿼리 전달의 문제점: 배경을 참고하세요.

더 알아보기