사용자 정의 매크로 사용의 가이드라인
사용자 정의 매크로를 작성하거나 사용하는 경우, 다음 가이드라인을 기억하십시오.
*
*
ENABLE_SELECT_SORT_BY = TRUE 특성으로 데이터 소스가 구성된 경우에는 반드시 ORDER BY 절이 있는 원시 SQL 사용자 정의 매크로를 작성하여 작업 중인 대상 레벨의 대상 키 필드를 기준으로 리턴된 레코드를 정렬해야 합니다. 그렇지 않으면 정렬 순서가 예상과 다른 경우 스냅샷 프로세스의 파생 필드에서 사용자 정의 매크로가 사용될 때 오류가 생성됩니다.
*
*
사용자 정의 매크로가 기본 로직에서 임시 테이블을 사용하는 경우, 임시 테이블은 데이터베이스로 강제 실행되므로 로직이 실패합니다.
그러나 최상위 레벨 SELECT에서 사용자 정의 매크로를 사용하면 임시 테이블을 데이터베이스로 강제 실행하는 데 사용할 Campaign 기록이 없으므로 로직이 실패합니다.
따라서 원시 SQL을 사용하는 사용자 정의 매크로를 작성하는 경우 두 가지 버전의 동일한 사용자 정의 매크로(임시 테이블 토큰을 사용하는 버전 및 사용하지 않는 버전)을 작성해야 합니다.
임시 테이블 토큰이 없는 사용자 정의 매크로는 트리의 상위 레벨(예: 첫 번째 SELECT)에서 사용될 수 있습니다. 임시 테이블 토큰이 있는 사용자 정의 매크로는 활용할 임시 테이블이 있는 경우 트리 내의 다른 모든 곳에서 사용할 수 있습니다.
*
예를 들어, 값을 리턴하는 원시 SQL 기반의 사용자 정의 매크로를 사용하고 (예를 들어, 스냅샷 프로세스에서) 사용자 정의 매크로 및 사용자 정의 매크로가 기반으로 하는 테이블의 기타 필드를 출력하는 경우 Campaign은 해당 테이블에 자체 조인을 수행합니다. 테이블이 정규화되지 않은 경우 카테시안 곱으로 종료될 수 있습니다. (즉, 표시되는 레코드 수가 예상보다 많습니다.)
*
실행 시간에 사용자 정의 매크로는 정의가 저장되어 있는 UA_CustomMacros 시스템 테이블을 검색하여 해석된 다음 사용/실행됩니다.
*
Campaign은 이전 릴리스에서 저장된 쿼리를 지원합니다. 그러나 고유하지 않은 저장된 쿼리에 대한 참조는 다음과 같은 이전 구문을 사용해야 합니다.
storedquery(<query name>)
*
사용자 정의 매크로에 있는 사용자 변수를 해석하는 경우 Campaign은 구문을 확인할 때 사용자 변수의 현재 값을 사용합니다. 현재 값이 공백으로 남아 있으면 Campaign은 오류를 생성합니다.
*
*
*
*
Campaign은 쉼표를 매개변수 구분 기호로 처리합니다. 매개변수에서 쉼표를 리터럴 문자로 사용하는 경우에는 다음 예처럼 중괄호({}) 안에 텍스트를 넣어야 합니다.
TestCM( {STRING_CONCAT(UserVar.Test1, UserVar.Test2) } )
*
Campaign은 원시 SQL 코드를 사용하는 사용자 정의 매크로에서 매개변수의 단순 대체를 지원합니다. 예를 들어, 다음 쿼리를 포함하는 플로우차트에 선택 프로세스 상자를 설정합니다.
exec dbms_stats.gather_table_stats(tabname=> <temptable>,ownname=> 'autodcc')
Campaign은 <temptable> 토큰의 자리에 실제 임시 테이블을 성공적으로 대체합니다. 테이블 이름은 작은따옴표 안에 넣어야 합니다.
다음 표는 Campaign이 쿼리 및 파생 필드에서 사용자 정의 매크로를 처리하는 방법을 나타냅니다.
쿼리 및 파생 필드의 사용자 정의 매크로(선택, 세그먼트 및 대상 프로세스)
값이 이 방식으로 사용되지 않는 경우, Campaign은 ID 선택에 대해 0이 아닌 값을 TRUE로 처리하고 0 값 및 문자열을 FALSE로 처리합니다.
IBM® 표현식
원시 SQL 쿼리에서(선택, 세그먼트 및 대상 프로세스)
IBM® 표현식