C# Oracle数组绑定导致数据被截断
我使用数组绑定将一系列Python脚本导入Oracle数据库:C# Oracle数组绑定导致数据被截断,c#,oracle,odp.net,C#,Oracle,Odp.net,我使用数组绑定将一系列Python脚本导入Oracle数据库: using (OracleCommand cmd = conn.CreateCommand()) { cmd.CommandText = @"insert into scripts (nscript, scriptname, scriptdescr, scripttext, created, modified, createdby) values (nscript.nextval, :1, :2,
using (OracleCommand cmd = conn.CreateCommand())
{
cmd.CommandText = @"insert into scripts (nscript, scriptname, scriptdescr, scripttext, created, modified, createdby)
values (nscript.nextval, :1, :2, :3, sysdate, sysdate, 'XXX')";
OracleParameter paramScriptName = new OracleParameter("ScriptName", OracleDbType.Varchar2, 64);
paramScriptName.Value = scriptNames.ToArray();
OracleParameter paramScriptDescription = new OracleParameter("ScriptDescripption", OracleDbType.Varchar2, 128);
paramScriptDescription.Value = scriptDescriptions.ToArray();
OracleParameter paramScriptText = new OracleParameter("ScriptText", OracleDbType.Long, 0);
paramScriptText.Value = scriptTexts.ToArray();
cmd.Parameters.Add(paramScriptName);
cmd.Parameters.Add(paramScriptDescription);
cmd.Parameters.Add(paramScriptText);
cmd.ArrayBindCount = scriptNames.Count;
cmd.ExecuteNonQuery();
paramScriptName.Dispose();
paramScriptDescription.Dispose();
paramScriptText.Dispose();
}
遵循本指南:
但是,我注意到一些较长的脚本在导入时会被截断
对我做错了什么有什么建议吗
非常感谢
Steve为什么在此行中使用Long和0大小:OracleParameter paramScriptText=new OracleParameterScriptText,OracleDbType.Long,0;?我不太确定还需要说明什么,但我在别处看到过。那个特定的构造函数坚持使用size参数。值得一提的是,如果我大幅增加这个数字,问题不会自行解决。数据库表中scripttext列的类型是什么?它不应该保存Varchar2数据吗?数据库版本是什么?是否可以将scripttext列类型从LONG修改为CLOB?