我們在Oracle中有超過200個視圖,應該將其轉換爲200個具有固定長度字段的平面文件。
幫助改進移植計劃
希望得到的想法,做好以下遷移程序的設計。
移民計劃的原型是這樣的名爲VIEWNAME1視圖(並且是在原型其他意見相同):爲
StronglyTypedDataSet views = new StronglyTypedDataSet();
ViewName1TableAdapter tableAdapter = new ViewName1TableAdapter();
tableAdapter.Fill(views.VIEWNAME1 );
mapFromViewToFlatFile(views.VIEWNAME1);
目前我們使用的ODT(Oracle開發工具) .Net與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;
}
寫入
第十私人OneRow()函數
和第十私人BuildFormat()函數(一個在Oracle每個視圖之後,代碼味道)。
我知道這可以做得更好,更快,可以更輕鬆地設置新視圖,並且更輕鬆地處理更改。
歡迎任何建議。
謝謝。
@亞當霍克斯:好主意。謝謝+1 – 2009-12-03 06:44:49