database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 24230 게시물 읽기
No. 24230
proC에서 에러좀 잡아 주세요
작성자
정우수(visionjx)
작성일
2005-09-27 22:53
조회수
8,905

#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 변수 문자열의 지정된 길이가 부적합합니다. 라는 에러가 뜹니다.

무엇이 문제일까요?

 

이 글에 대한 댓글이 총 1건 있습니다.

/*

name이 VARCHAR로 선언되었으므로 아래와 같은 방식으로

처리해줘야 합니다.

*/

strncpy(name.arr,"KIMM",strlen("KIMM"));

name.len = strlen(name.arr);

 

 

설욱환님이 2005-09-28 16:01에 작성한 댓글입니다.
이 댓글은 2005-09-28 16:07에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
24234메타링크 접속가능하신분 오라클 최신버전 확인 좀 해주세요. [6]
이호한
2005-09-28
2330
24233필드명을 가져올려고 하는데.. 방법이 있나요? [8]
힘든초보
2005-09-28
2081
24232파티션테이블의 인덱스 관련 질문입니다.
궁금
2005-09-28
2052
24230proC에서 에러좀 잡아 주세요 [1]
정우수
2005-09-27
8905
24229KO16KSC5601 데이터를 US7ASCII로 변환하여 IMPORT 문제 [3]
한은정
2005-09-27
5356
24228오라클을 처음 사용하는데 이미지에 관련된 질문입니다. [1]
오화백
2005-09-27
1853
24227NOT IN 구문의 처리과정?? [8]
신동민
2005-09-27
3475
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2025 DSN, All rights reserved.
작업시간: 0.011초, 이곳 서비스는
	PostgreSQL v17.5로 자료를 관리합니다