- 카테고리:
시스템 함수 (정보)
SYSTEM$REFERENCE¶
오브젝트(테이블, 뷰 또는 함수)에 대한 참조 를 반환합니다. 오브젝트에 대한 참조에 대해 SQL 작업을 실행할 때 참조를 생성한 사용자의 역할을 사용하여 작업이 수행됩니다.
- 참고 항목:
구문¶
SYSTEM$REFERENCE('<object_type>', '<object_identifier>',
[ , <reference_scope> [ , '<privilege>' [ , '<privilege>' ... ] ] ] )
인자¶
필수 사항
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'));
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 함수를 사용하여 참조를 생성하려고 하는데 |
해결책 |
|
예¶
간단한 예 섹션을 참조하십시오.