아래 샘플 소스입니다.
DB연결해서 처리를 하고 있는데 테이블명을 변수로 처리 하고 싶은데 안되네요..
SAP는 오라클사용하고 연결대상쪽은 MS-SQL입니다.
:TBLMNE로도 해보고 (TBLNME)로도 해봤는데 계속 오류 나네요..
혹시 이런것 해보신분 답변 부탁드립니다.
TBLMNE = 'PAYHST'.
EXEC SQL.
CONNECT TO :DBS
ENDEXEC.
IF SY-SUBRC = 0.
EXEC SQL performing append_hr01.
SELECT MANDT, PAYYYY, PAYMON, PAYGUB, KOSTL, ZZWORK,
HKONT, LIFNR, PAYAMT, EMPCNT, GSBER, BSCHL, SHKZG,
BELNR, ZF_REMARK
INTO :TMP_ZTHRS01-MANDT, :TMP_ZTHRS01-PAYYYY,
:TMP_ZTHRS01-PAYMON, :TMP_ZTHRS01-PAYGUB,
:TMP_ZTHRS01-KOSTL, :TMP_ZTHRS01-ZZWORK,
:TMP_ZTHRS01-HKONT, :TMP_ZTHRS01-LIFNR,
:TMP_ZTHRS01-PAYAMT, :TMP_ZTHRS01-EMPCNT,
:TMP_ZTHRS01-GSBER, :TMP_ZTHRS01-BSCHL,
:TMP_ZTHRS01-SHKZG, :TMP_ZTHRS01-BELNR,
:TMP_ZTHRS01-ZF_REMARK
FROM :TBLMNE
FROM (TBLMNE)
* FROM PAYHST
WHERE MANDT = :SY-MANDT
AND PAYYYY = :S_PAYYYY
AND PAYMON = :S_PAYMON
ENDEXEC.
ENDIF.
native SQL에서는 테이블 명을 변수로 처리하는게 안될거같습니다.
오픈 SQL의 경우에는 테이블 명을 변수로 써줄경우 프로그램 실행시 실제 테이블 명으로 변환해 주는 과정이 있지만
native SQL의 경우 그러한 변환과정이 없기때문에 안될거 같습니다.