我不太熟悉如何在C#中执行此操作。需要连接到Oracle db,从目录中获取文件然后读取文件的每一行。线条是这样的:
然后将拆分为字符串并根据此标志| A |,| D |或| M |我将在里面添加/删除/修改信息。 我不想写完整个代码。只是一些想法和指导如何做到这一点。 感谢
答案 0 :(得分:2)
首先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();
}
}
}
答案 1 :(得分:0)
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';
但是当记录已存在于目标中时,这不会插入。