C -> Pro*C -> Oracle data
위에서 처럼 연동을 하게 되는데요..
문제는..
Data값의 최대 길이가 문자열로 16바이트라고 한다면, Oracle에서는 16자리로 넣고 (varchar2 (16)), C에서는 문자열 마지막의 Null을 포함해서 char[17] 로 잡을텐데, 중간 어디쯤에서 그걸 16으로 바꿔줄지가 의문입니다.
Pro*C에서
[code:1]
char c_data[17]; /* c로부터 입력받은 data */
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR proc_data[16];
EXEC SQL END DECLARE SECTION;
strncpy((char *) proc_data.arr, c_data, 16);