설계 변경을 전달하는 경우 다른 오브젝트(예: 뷰, 구체화된 쿼리 테이블 및 별명)에서 파생된 오브젝트의
DDL을 검사하여 올바른 종속 오브젝트를 분석해야 합니다.
- 증상
- DB2®는 일부 파생된
오브젝트에 사용할 CREATE문을 지정된 카탈로그에 저장합니다. 이러한 명령문의 작성자가 스키마 이름을 지정하지 않은 경우에는 현재 로그인이 사용됩니다. 설계 변경을 전달하는 프로세스에서 현재 로그인과 다른 경우 CREATE문이 실행되지 않을 수 있습니다.
- 문제점 해결
- 이러한 문제점을 해결하려면
오브젝트를 변경할 때와 같은 작성자 ID를 사용하거나, DDL에 종속 오브젝트를 완전히 지정하거나,
명령 앞에 SET CURRENT SCHEMA 구문을 추가하십시오.
예를 들어,
CREATE VIEW 명령을 CREATE VIEW MYSCHEMA.VIEW
AS SELECT * FROM MYTABLE;와 같이 생성하고 MYTABLE이 실제로
DB2 스키마에 속한 경우,
이 명령을 배치하면 DB2에서는
현재 로그인 이름 아래에서 MYTABLE을 찾습니다. loginname.MYTABLE이 정의되지 않음을 나타내는 오류가 표시될 수 있습니다. CREATE VIEW MYSCHEMA.VIEW AS SELECT * FROM MYTABLE 구문 앞에
SET CURRENT SCHEMA=DB2 문을 추가하면
참조된 오브젝트가 모두 올바르게 분석됩니다.
IBM® Data
Studio에서 파생된 오브젝트의 CREATE문에 대해 올바른 순서를 계산 중이며
이 오브젝트에 완전한 스키마 이름 없이 파생된 다른 오브젝트의 이름이 포함되는 경우
IBM Data
Studio가 해당 명령문을 잘못된 순서로 배치할 가능성이 있습니다. 이 문제점을 정정하려면
다음을 수행해야 합니다.
- 변경 명령을 생성하는 데 사용되는 로그인이 데이터베이스 오브젝트 작성에 사용된 로그인과 같은지 확인하십시오.
- SQL 및
XQuery 편집기에서 생성된 명령을 열고 명령문을 올바른 순서로 배치하십시오.