#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* SQLCA 를 선언한다 */
EXEC SQL INCLUDE SQLCA;
int main(int argc, char **argv)
{
/* 선언부 */
EXEC SQL BEGIN DECLARE SECTION;
varchar name[15];
int count = 0;
char userid[40]= "scott/tiger";
char sqlcmd[200];
EXEC SQL END DECLARE SECTION;
/* DB 연결 */
EXEC SQL CONNECT :userid;
/* 에러 처리 */
if (sqlca.sqlcode < 0)
{
printf("%s\n", sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK WORK RELEASE;
exit(0);
}
/* 쿼리 */
strncpy(name.arr,"KIMM",strlen("KIMM"));
EXEC SQL INSERT INTO wstable1 VALUES (10, :name ,2);
/* 쿼리 결과에 대한 에러처리 */
if (sqlca.sqlcode < 0)
{
printf("ERROR: %s\n",sqlca.sqlerrm.sqlerrmc);
EXEC SQL COMMIT WORK RELEASE;
return 0;
}else if(sqlca.sqlcode==0) {
printf("SUCESS!\n");
EXEC SQL COMMIT WORK;
}
printf("OK");
/* DB 연결 종료 */
EXEC SQL COMMIT WORK RELEASE;
return 0;
}
위 프로그램을 컴파일하고 실행을 하면
ERROR: ORA-01458 변수 문자열의 지정된 길이가 부적합합니다. 라는
에러가 뜹니다.
무엇이 문제일까요?
|