在Oracle中使用XML保存数据

时间:2012-08-04 20:03:24

标签: c# oracle

我使用以下代码进行保存。将记录更新到Oracle,

OracleConnection con = new OracleConnection(constr);
con.Open();

// Create the command.
OracleCommand cmd = new OracleCommand("", con);
cmd.CommandText = "<?xml version=\"1.0\"?>\n" +
    "<ROWSET>\n" +
    " <MYROW>\n" +
    " <FIELD1>2</FIELD1>\n" +
    " <FIELD2>zafar</FIELD2>\n" +
    " </MYROW>\n" +
    "</ROWSET>\n";

// Set the XML save properties.
KeyColumnsList = new string[1];
KeyColumnsList[0] = "FIELD1";
UpdateColumnsList = new string[1];
UpdateColumnsList[0] = "FIELD2";

cmd.XmlSaveProperties.KeyColumnsList = KeyColumnsList;
cmd.XmlSaveProperties.UpdateColumnsList = UpdateColumnsList;
cmd.XmlSaveProperties.RowTag = "MYROW";
cmd.XmlSaveProperties.Table = "testconn";
cmd.XmlSaveProperties.Xslt = null;
cmd.XmlSaveProperties.XsltParams = null;
rows = cmd.ExecuteNonQuery();

Console.WriteLine("rows: " + rows);

Field2列中,我想使用select user from dual。我无法保存当前的数据库用户。

1 个答案:

答案 0 :(得分:0)

CommandText中的数据结构假定所有值都是文字。没有办法让它识别内部查询或表达式。如果要查询user,则必须单独执行此操作并将其合并到数据中。这可以通过XsltXsltParams条款实现。