正如下面的代码所示,我想在数据库表(oracle 11)中插入一行并返回插入行的字符串值。
using (OracleCommand cmd = con.CreateCommand()) {
cmd.CommandText = "insert into foo values('foo','bar') returning idString into :lastIdParam";
cmd.Parameters.Add(new OracleParameter("lastIdParam", OracleDbType.Varchar2), ParameterDirection.ReturnValue);
cmd.ExecuteNonQuery(); // returning 1 (insert row successfully)
var result = cmd.Parameters["lastIdParam"].Value.ToString(); // == String.Empty
}
调试显示 lastIdParam.Value 的 value = Empty.String:
我的问题是,我没有将返回字符串放入我的返回参数中,但它会在返回一个整数值时起作用(如插入 id 的序列号)。选角问题?...?
如果直接运行语句,则 idString 被填充(或者如果我只是做类似的事情returning 'ABC' into :myOutputParameter
任何想法如何在插入行后检索字符串?