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