0

我不太熟悉如何在 C# 中执行此操作。需要连接到 Oracle 数据库,从目录中获取一个文件,然后读取文件的每一行。行是这样的:

然后将拆分为字符串并根据此标志|A|,|D| 或 |M| 我将在里面添加/删除/修改信息。我不想给我写整个代码。只是一些想法和指导方针。谢谢

4

2 回答 2

2

第一次读取文件

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();
    }

   }

}
于 2013-04-02T13:27:16.243 回答
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';

但是当目标中已经存在记录时,这不会插入。

于 2013-04-02T13:54:59.053 回答