📄 sqlloader.cpp
字号:
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<io.h>
#include <windows.h>
#define INITNAME ".\\sqlloader.ini"
int main()
{
FILE *fout;//, *fp
char Execommand[256];
char User[16] = "wzknown";
char Pwd[16] = "wzknown";
char DB[16] = "known";
char FileName[64] = {0};
char TableName[64] = {0};
char sqlload[64] = {0};
char hdfrtfilename[64]="\0";
char hdctrlpath[100] = "\0";
char hdtablename[64]="\0";
char hdfilecount[16]="\0";
char hdfrtfileno[16] = "\0";
GetPrivateProfileString("config","ctrlfile",NULL,hdctrlpath,100,INITNAME);
GetPrivateProfileString("config","firstfilename",NULL,hdfrtfilename,64,INITNAME);
GetPrivateProfileString("config","tablename",NULL,hdtablename,64,INITNAME);
GetPrivateProfileString("config","firstfileno",NULL,hdfrtfileno,16,INITNAME);
GetPrivateProfileString("config","filecount",NULL,hdfilecount,16,INITNAME);
GetPrivateProfileString("config","dbuser",NULL,User,16,INITNAME);
GetPrivateProfileString("config","dbpas",NULL,Pwd,16,INITNAME);
GetPrivateProfileString("config","dbsourse",NULL,DB,16,INITNAME);
int filecnt = atoi(hdfilecount);
int frtfileno = atoi(hdfrtfileno);
int j = 0;
sprintf(TableName,"%s",hdtablename);
for(int i = 0;i < filecnt;i++)
{
j = i + frtfileno;
sprintf(sqlload,"%s%03d.ctl",hdctrlpath,j);
sprintf(FileName,"%s%03d.txt",hdfrtfilename,j);
if ((fout=fopen(sqlload, "w")) == NULL)
{
printf("建立通话控制文件%2d出错!\n",j);
return 0 ;
}
fprintf(fout, "LOAD DATA\n");
fprintf(fout, "INFILE '%s'\n", FileName);
fprintf(fout, "APPEND INTO TABLE %s \n", TableName);
fprintf(fout, "FIELDS TERMINATED BY X'09' \n");
fprintf(fout, "( DR_TYPE ,\n");
fprintf(fout, " CALL_TYPE ,\n");
fprintf(fout, " USER_NUMBER ,\n");
fprintf(fout, " OPP_NUMBER ,\n");
fprintf(fout, " SP_CODE ,\n");
fprintf(fout, " START_TIME ,\n");
fprintf(fout, " MESSAGE_LENGTH,\n");
fprintf(fout, " SMS_CENTER ,\n");
fprintf(fout, " CHARGE1 ,\n");
fprintf(fout, " CHARGE1_DISC ,\n");
fprintf(fout, " CHARGE4 ,\n");
fprintf(fout, " CHARGE4_DISC ,\n");
fprintf(fout, " FREE_RES_VAL1 ,\n");
fprintf(fout, " FREE_RES_CODE1 ,\n");
fprintf(fout, " SERVICE_CODE \n");
fprintf(fout, ") \n");
fclose(fout);
sprintf(Execommand, "sqlldr.exe userid=%s/%s@%s control=%s",
User, Pwd, DB, sqlload);
if (system(Execommand) == -1)
{
printf("SQL*Loader执行%2d号控制文件时错误!\n",j);
return 0;
}
}
return 0 ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -