0
我不是很熟悉如何在C#中執行此操作。需要連接到Oracle數據庫,從目錄中獲取文件,然後讀取文件的每一行。線是這樣的:從oracleDB讀取文件並添加/刪除/修改數據
然後將拆分爲字符串,並根據此標誌| A |,| D |或| M |我會在裏面添加/刪除/修改信息。 我不想寫我整個代碼。只是一些想法和指導方針如何去做。 感謝
我不是很熟悉如何在C#中執行此操作。需要連接到Oracle數據庫,從目錄中獲取文件,然後讀取文件的每一行。線是這樣的:從oracleDB讀取文件並添加/刪除/修改數據
然後將拆分爲字符串,並根據此標誌| A |,| D |或| M |我會在裏面添加/刪除/修改信息。 我不想寫我整個代碼。只是一些想法和指導方針如何去做。 感謝
第一read file:當記錄的目標已經存在
var lines = File.ReadLines(@"filename");
foreach (string line in lines)
{
// Then split each line
var str = line.Split('|'); // str contains list of splitted string
// then save it to db
using (var c = new OracleConnection("connectionString"))
{
c.Open();
// check flag
if (str [2] == 'A')
{
// prepare your sql with splitted array
var command = c.CreateCommand();
command.Text = "INSERT INTO table(column) values(:col1)";
command.Parameters.AddWithValue("col1", str[0])
command.ExecuteNonQuery();
}
}
}
一個MERGE可以幫助你......
MERGE INTO target_table T
USING source_table S
ON (D.id = S.id)
WHEN MATCHED THEN UPDATE SET
T.field1 = S.field1,
T.field2 = S.field2
DELETE WHERE (S.flag='D')
WHEN NOT MATCHED THEN INSERT (id, field1, filed2)
VALUES (S.id, S.filed1, S.filed2)
WHERE S.flag='A';
但這不會插入。
謝謝,我該如何檢查參數/標誌是什麼? –
已編輯,但此代碼可寫得更好。這隻會給你一個起點 – adt