파라미터를 사용한 SQLEXEC 예제
이 예제에서는 입력 및 출력 파라미터가 포함된 내장 프로시저와 query를 사용합니다.
주: 프로시저 또는 질의에 매개변수가 포함된 경우 추가 SQLEXEC 옵션을 사용할 수 있습니다. Oracle GoldenGate에 대한 매개변수 및 함수 참조의 SQLEXEC를 참조하십시오.
내장 프로시저가 있는 예제 9-3 SQLEXEC
이 예에서는 SQLEXEC를 사용하여 코드를 기반으로 설명을 반환하는 질의를 수행하는 LOOKUP라는 내장 프로시저를 실행합니다. 그런 다음 결과를 NEWACCT_VAL이라는 대상 열에 매핑합니다.
CREATE OR REPLACE PROCEDURE LOOKUP
(CODE_PARAM IN VARCHAR2, DESC_PARAM OUT VARCHAR2)
BEGIN
SELECT DESC_COL
INTO DESC_PARAM
FROM LOOKUP_TABLE
WHERE CODE_COL = CODE_PARAM
END;
MAP 문의 내용:
MAP sales.account, TARGET sales.newacct, &
SQLEXEC (SPNAME lookup, PARAMS (code_param = account_code)), &
COLMAP (newacct_id = account_id, newacct_val = lookup.desc_param);
SQLEXEC는 LOOKUP 내장 프로시저를 실행합니다. SQLEXEC 절 내에서 PARAMS (code_param = account_code) 문은 code_param를 account 테이블의 account_code 열에서 입력을 받아들이는 프로시저 매개변수로 식별합니다.
Replicat는 COLMAP 절이 결과를 추출하여 newacct_val 열에 매핑할 수 있도록 열 맵을 실행하기 전에 LOOKUP 내장 프로시저를 실행합니다.
질의가 있는 예제 9-4 SQLEXEC
이 예제는 이전 예제에서 사용된 것과 동일한 논리를 구현하지만 내장 프로시저 대신 SQL 질의를 실행하고 열 맵에서 @GETVAL 함수를 사용합니다.
질의는 한 행에 있어야 합니다. Oracle GoldenGate 매개변수 문을 여러 행으로 분할하려면 앰퍼샌드(&) 행 종료자가 필요합니다.
Oracle AI Database 쿼리:
MAP sales.account, TARGET sales.newacct, &
SQLEXEC (ID lookup, &
QUERY 'select desc_col desc_param from lookup_table where code_col = :code_param', &
PARAMS (code_param = account_code)), &
COLMAP (newacct_id = account_id, newacct_val = &
@getval (lookup.desc_param));
비Oracle AI Database에 대한 질의:
MAP sales.account, TARGET sales.newacct, &
SQLEXEC (ID lookup, &
QUERY 'select desc_col desc_param from lookup_table where code_col = ?', &
PARAMS (p1 = account_code)), &
COLMAP (newacct_id = account_id, newacct_val = &
@getval (lookup.desc_param));