SYSTEM$REFERENCE 함수: 일치하지 않는 오브젝트 유형으로 참조 생성 실패

주의

이 동작 변경 사항은 2023_08 번들에 있습니다.

번들의 현재 상태는 번들 기록 섹션을 참조하십시오.

SYSTEM$REFERENCE 함수를 사용하여 오브젝트에 대한 참조 를 만들 수 있습니다. 참조는 액세스 권한이 없다면 오브젝트에 액세스할 수 없는 저장 프로시저, 클래스 인스턴스 또는 애플리케이션에 오브젝트에 액세스할 권한을 부여합니다. 참조는 오브젝트에 대한 특정하고 제한된 권한을 가진 소유자 권한 저장 프로시저, 클래스 인스턴스 또는 애플리케이션에 대한 식별자로 전달됩니다.

SYSTEM$REFERENCE 함수의 object_type 인자는 참조가 식별하는 오브젝트의 유형과 일치해야 합니다. 다음 예에서 t1 은 TABLE 오브젝트 유형과 일치하는 테이블입니다.

SELECT SYSTEM$REFERENCE('TABLE', 't1', 'SESSION', 'SELECT');
Copy

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');
Copy

이 문으로 인해 다음과 같은 오류가 발생합니다.

505028 (42601): Object type VIEW does not match the specified type TABLE for reference creation

참조: 1315