C로 프로그래밍 하다가 테이블이름이 변하기 때문에
다이나믹SQL로
실행되도록 만들었더니 안되네요..
------------1. 이렇게 하면
됨---------------------------------------
EXEC SQL
SELECT COUNT(*)
into :db_count
from A0000001589_RBC_TMP;
ctx->all_file_cnt = db_count;
printf("## LOAD 된 주민번호 건수1 : [%d]\n",
ctx->all_file_cnt );
--------------------------------------------------------------
--------------2. 이렇게 하면 안됨
-------------------------------
memset( sqlcmd_0, 0x00, sizeof( sqlcmd_0 ));
sprintf( sqlcmd_0, "SELECT COUNT(*) \n"
" into :db_count \n"
" from A%s_RBC_TMP; \n",ctx->batch_id);
printf (" 카운트 QUERY =[%s]", sqlcmd_0);
EXEC SQL PREPARE ST1 FROM :sqlcmd_0;
EXEC SQL EXECUTE ST1;
if ( DB_ERRORNUM != 0 ) {
PEC_HSTERR( PEC_LN, PEC_ECODE9, "= A%s_RBC_TMP 를 카운트 하는데
실패하였습니다.[%d][%s]", ctx->batch_id, DB_ERRORNUM,
DB_ERRORSTR );
goto ERR_PROC;
}
ctx->all_file_cnt = db_count;
----------------------------------------------------------------------
2번째 부분에서
[-33620274][cs_objects: cslib user api layer:
external error: 26000 Invalid SQL statement identifier.]
이렇게 에러가 떨어지네요 ㅠㅠ 쿼리가 들어가 있는 sqlcmd_0 를
출력해본 결과
첫번째와 동일하게 나오는데도 안됩니다.
고수님들 좀 도와주시면 감사하겠습니다.
|