SYSTEM$REFERENCE 함수: 일치하지 않는 오브젝트 유형으로 참조 생성 실패¶
SYSTEM$REFERENCE 함수를 사용하여 오브젝트에 대한 참조 를 만들 수 있습니다. 참조는 액세스 권한이 없다면 오브젝트에 액세스할 수 없는 저장 프로시저, 클래스 인스턴스 또는 애플리케이션에 오브젝트에 액세스할 권한을 부여합니다. 참조는 오브젝트에 대한 특정하고 제한된 권한을 가진 소유자 권한 저장 프로시저, 클래스 인스턴스 또는 애플리케이션에 대한 식별자로 전달됩니다.
SYSTEM$REFERENCE 함수의 object_type
인자는 참조가 식별하는 오브젝트의 유형과 일치해야 합니다. 다음 예에서 t1
은 TABLE 오브젝트 유형과 일치하는 테이블입니다.
SELECT SYSTEM$REFERENCE('TABLE', 't1', 'SESSION', 'SELECT');
SYSTEM$REFERENCE 함수는 다음과 같이 동작합니다.
- 변경 전:
SYSTEM$REFERENCE 함수를 사용하여 참조를 생성하고
object_type
인자가 TABLE이며 오브젝트 이름이 테이블과 유사한 오브젝트 유형(즉, TABLE, VIEW, EXTERNAL TABLE 또는 MATERIALIZED VIEW)으로 확인되는 경우에는 함수가 성공 합니다.- 변경 후:
SYSTEM$REFERENCE 함수를 사용하여 참조 생성을 시도하고
object_type
인자가 TABLE이지만 오브젝트 이름이 TABLE이 아닌 테이블과 유사한 오브젝트 유형(즉, VIEW, EXTERNAL TABLE 또는 MATERIALIZED VIEW)으로 확인되는 경우에는 함수가 실패 합니다.예를 들어 다음 문과 함께 뷰
v1
에 대해 TABLE 오브젝트 유형을 사용하는 경우SELECT SYSTEM$REFERENCE('TABLE', 'v1', 'SESSION', 'SELECT');
이 문으로 인해 다음과 같은 오류가 발생합니다.
505028 (42601): Object type VIEW does not match the specified type TABLE for reference creation
참조: 1315