⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlloader.cpp

📁 一个使用sqlldr.exe快速导入oracle数据文件的VC程序.
💻 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 + -