Oracle

게시글 보기
작성자 유건데이타 등록일 2015-05-07
제목 EXPORT 받은 화일의 CHARACTER SET 변경 프로그램
EXPORT 받은 화일의 CHARACTER SET 변경 프로그램
=============================================

PURPOSE
-------
Export받은 dump file의 characterset이 US7ASCII일 경우 이를
KO16KSC5601 로 변경하는 conversion program에 대하여 알아본다.


Explanation & Example
---------------------

/*****************************************************************
* *
* convdat : Data Conversion Program *
* *
* converts exported files in different db-charset *
* to specific db-charset files. *
* *
* compile 방법 : cc -o convdat convdat.c *
* 실행 방법 : convdat dumpfile명 US7ASCII[KSC5601] *
*****************************************************************/
#include
#include
#include
#include

int us7_to_ksc, ksc_to_us7; /* conversion flag */

main(argc,argv)
int argc;
char *argv[];
{
us7_to_ksc = ksc_to_us7 = 0;
if(argc != 3) {
usage(argv[0]);
exit(1);
}

if(!strcmp(argv[2],"KSC5601"))
us7_to_ksc = 1;
else if(!strcmp(argv[2],"US7ASCII"))
ksc_to_us7 = 1;
else
usage(argv[0]);
data_conversion(argv[1]);
printf("conversion completed successfully !!!\n");
}

usage(prog_name)
char *prog_name;
{
printf("Usage: %s exported-file-name charset\n", prog_name);
printf(" - charset : KSC5601|US7ASCII \n");
printf(" . KSC5601 - convert us7ascii format to ksc5601 format\n");
printf(" . US7ASCII - convert ksc5601 format to us7ascii format\n");
}

data_conversion(usfile)
char *usfile;
{
int fd;
char conv_buffer[2];
if((fd = open(usfile, 2)) < 0) {
perror("open");
exit(1);
}
if(lseek(fd, 1, 0) < 0) {
perror("lseek");
exit(1);
}
if(us7_to_ksc){
conv_buffer[0] = 3;
conv_buffer[1] = 'H';
}
else if(ksc_to_us7){
conv_buffer[0] = '\0';
conv_buffer[1] = 1;
}
if(write(fd,conv_buffer,2) != 2) {
perror("write");
exit(1);
}
close(fd);
}


Reference Documents
-------------------
none

출처 : Technical Bulletin (Korean)
Comment
등록된 코멘트가 없습니다.