我们在Oracle中有200多个视图,这些视图应该转换为200多个具有固定长度字段的平面文件。
希望能得到更好地设计以下迁移程序的想法。
对于名为viewname1的视图,迁移程序的原型如下所示(原型中的其他视图也是如此):
StronglyTypedDataSet views = new StronglyTypedDataSet();
ViewName1TableAdapter tableAdapter = new ViewName1TableAdapter();
tableAdapter.Fill(views.VIEWNAME1 );
mapFromViewToFlatFile(views.VIEWNAME1);
目前,我们正在使用odt(Oracle开发人员工具)for.NET with c。
每个视图的映射例程:
private void mapFromViewToFlatFile(DataTable table)
{
StringBuilder format = BuildFormat();
StringBuilder outBuf = new StringBuilder();
foreach (views.VIEWNAME1Row row in table.Rows)
{
OneRow(outBuf, format, row);
}
SerializeToFile(outBuf, FILENAME);
}
private void OneRow(StringBuilder outBuf, StringBuilder format,views.VIEWNAME1Row row)
{
outBuf.AppendFormat(format.ToString(),
row.COLUMNNAME1.Trim(),
row.IsCOLUMNNAME2Null() ? string.Empty : row.COLUMNNAME2.Trim()
);
OutBuf.AppendLine();
}
private StringBuilder BuildFormat()
{
StringBuilder format = new StringBuilder();
format.Append("{0,-14}");
format.Append("{1,-36}");
return format;
}
在写下
第10个private onerow()函数
以及第10个private buildFormat()函数(Oracle中的每个视图都有一个,代码闻起来很香)。
我知道这可以做得更好更快,这将使新视图的设置更容易,处理更改也更容易。
欢迎提出任何建议。
谢谢。