Linux에서 proc를 할 경우 프로그램 종료에 관련되어 질문 드립니다.

baarong의 이미지

리눅스를 이용해서 오라클 Pro*C를 작업하고 있습니다.

그런데 문제는 EXEC 구문을 만나면 프로그램이 그냥 종료되고 있는 문제가 발생하고 있습니다.

int proc_wrk_end(char *target)
{
    struct rcv_lane_data  *rd;
    struct  hi_wrk_end *pk_in;
    int     iCrjb;
    int     start_sno;
    int     end_sno;
    int     ii;
 
EXEC SQL BEGIN DECLARE SECTION;
    struct  sp_adjust_ins    pr_out;
    char plz_id[2+1];
    char lane_no[2+1];
    char year[4+1];
    char mon[2+1];
    char day[2+1];
    int  ret;
    char *stmt = "BEGIN SP_ADJUST_INS(:v1, :v2, :v3, :v4, :v5, :v6, :v7, :v8, :v9, :v10, :v11, :v12, :v13, :v14, :v15, :v16, :v17, :v18, :v19, :v20, :v21, :v22); END";
EXEC SQL END DECLARE SECTION;
printf("1111\n");
    char tmp[10]; memset(tmp, 0x00, sizeof(tmp));
 
    memset((char *)&pr_out, 0, sizeof(pr_out));
printf("2222\n");
    rd = (struct rcv_lane_data *)target;
    pk_in = (struct hi_out_way_wrk_end *)rd->buf;
    start_sno = lb_data2atoi(rd->st_snd_no, 10);
    end_sno = lb_data2atoi(pk_in->seq_no, 10);
 
printf("3333\n");
EXEC SQL PREPARE sProc FROM :stmt;
printf("4444\n");
    sprintf((char *)pr_out.in_id, "%.4s%c", pk_in->wrkr_no+2, '\0');
    e_memcpy(pr_out.in_fare, rd->plz_id);
    e_memcpy(pr_out.in_booth, rd->lane_no);
    sprintf((char *)pr_out.in_st_date, "%.4s%.2s%.2s%.2s%.2s%.2s",
             pk_in->wrk_start_year, pk_in->wrk_start_month, pk_in->wrk_start_day,
             pk_in->wrk_start_hour, pk_in->wrk_start_min, pk_in->wrk_start_sec);
    sprintf((char *)pr_out.in_ed_date, "%.4s%.2s%.2s%.2s%.2s%.2s",
             pk_in->wrk_end_year, pk_in->wrk_end_month, pk_in->wrk_end_day,
             pk_in->wrk_end_hour, pk_in->wrk_end_min, pk_in->wrk_end_sec);
printf("5555\n");

실제로 찍히는 것은 3333 까지만 찍히고 프로세스는 종료가 되고 있습니다.

접속에 대해서는 3333 밑에 sleep을 걸어서 실제 DB 연결상태를 확인하였을 경우에도 연결 상태를 확인했습니다.

왜 프로그램이 종료가 되는 걸까요..ㅠ

원인을 모르겠어서 고수님들의 답변 부탁드립니다.