Kiq*_*net 1 c# oracle parameters odp.net sql-update
我正在尝试更新一个类似于以下内容的表:
column a VARCHAR2(80)
Run Code Online (Sandbox Code Playgroud)
使用以下函数:
sqlString = "UPDATE TABLE SET domicilio = :p_domicilio WHERE codigo = :p_codigo";
string sqlCommandtext = sqlString;
using (var cn = new OracleConnection("DATA SOURCE=XXX..."))
{
cn.Open();
using (OracleCommand commandInt32 = cn.CreateCommand())
{
cmd.CommandText = sqlCommandtext;
cmd.Parameters.Add("p_codigo", OracleDbType.Int32, 34620, ParameterDirection.Input);
cmd.Parameters.Add("p_domicilio", OracleDbType.Varchar2, ParameterDirection.Input).Value = domicilio;
//cmd.Parameters.Add("p_domicilio", OracleDbType.Varchar2, domicilio, ParameterDirection.Input);
cmd.ExecuteNonQuery();
}
}
Run Code Online (Sandbox Code Playgroud)
但得到“ ORA-01722 无效号码”异常。
我试试
cmd.Parameters.Add("p_domicilio", OracleDbType.Varchar2, ParameterDirection.Input).Value = domicilio;
Run Code Online (Sandbox Code Playgroud)
和
cmd.Parameters.Add("p_domicilio", OracleDbType.Varchar2, domicilio, ParameterDirection.Input);
Run Code Online (Sandbox Code Playgroud)
和
var pDomicilio = new Oracle.DataAccess.Client.OracleParameter()
{
DbType = DbType.String,
Value = domicilio,
Direction = ParameterDirection.Input,
OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2,
ParameterName = "p_domicilio",
};
Run Code Online (Sandbox Code Playgroud)