2016-12-29 4 views
0

다른 스키마의 두 테이블을 조인해야하는 HANA 데이터베이스에 저장 프로 시저가 있습니다. 이러한 스키마는 개발, 준비 및 프로덕션 시스템에서 다르게 명명됩니다.스키마가 둘 이상인 경우 저장 프로 시저에서 스키마 매핑을 사용하는 방법?

이 상황에서 분명한 해결책은 Schema-Mapping을 사용하는 것입니다. 그러나 안타깝게도 스키마 매핑은 저장 프로 시저의 기본 스키마에서만 작동하는 것으로 보입니다. 저장 프로 시저 (예 : JOIN "AUTHORING_SCHEMA"."SOME_TABLE" ON ...)에서 제작 스키마를 참조하려고하면 "유효하지 않은 스키마 이름"이라는 오류 메시지가 나타납니다. 그래서 하나만 테이블에 대한 스키마 매핑을 사용할 수 있지만 둘 다 사용할 수없는 것 같습니다.

테이블 "_SYS_BI"."M_SCHEMA_MAPPING"을 쿼리하여 내 저장 프로 시저에서 스키마 매핑을 읽을 수 있지만 변수에 스키마 이름이있을 때 스키마에서 쿼리하는 방법을 찾을 수 없다는 것을 알고 있습니다.

답변

2

내가 https://help.sap.com/saphelp_hanaplatform/helpdata/en/52/78b5979128444cb6fffe0f8c2bf1e3/content.htm을 확인 .hdbsynonym 사용하여 설계 시간의 동의어를 만드는 방법에 대한 자세한 내용 및 https://help.sap.com/saphelp_hanaplatform/helpdata/en/4c/94a9b68b434d26af6d878e5f51b2aa/content.htm

당신은 또한 수를 들어

을 .hdbsynonym 사용하여 두 동의어를 정의하여이 문제를 해결하기위한 시도를 줄 것이다 스키마 매핑이 hdbsynonym과 함께 작동하는 방법에 대한 설명을 찾으십시오.

동의어에 대한 자세한 내용은 https://blogs.sap.com/2016/12/05/using-synonyms-in-sap-hana/

을 참조하십시오.
0

나는 이것을 완전히 해결하지는 못했지만 지금은 해결할 수있는 해결 방법으로 해결했습니다.

두 번째 스키마를 기본 스키마로 사용하여 두 번째 저장 프로 시저를 만들었습니다. 이 절차는 두 번째 데이터베이스 테이블의 내용을 제외한 모든 작업을 수행합니다.

첫 번째 저장 프로 시저가 두 번째 테이블을 호출하여 데이터를 로컬 테이블 변수에로드 한 다음 첫 번째 데이터베이스 테이블과 테이블 변수 사이에 JOIN을 수행합니다.

두 번째 테이블이 다소 작기 때문에 (현재 16 행, 100 이상으로 성장할 가능성이 거의 없음)이 작업은 상당히 효과적입니다. 그러나 나는 더 큰 테이블로 그것을하고 싶지 않을 것입니다.