我不太熟悉如何在 C# 中执行此操作。需要连接到 Oracle 数据库,从目录中获取一个文件,然后读取文件的每一行。行是这样的:
然后将拆分为字符串并根据此标志|A|,|D| 或 |M| 我将在里面添加/删除/修改信息。我不想给我写整个代码。只是一些想法和指导方针。谢谢
第一次读取文件:
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';
但是当目标中已经存在记录时,这不会插入。