我正在尝试将行插入到oracle数据库中,该数据库包含具有单引号,双引号以及可能不允许的其他一些字符的字段。我已经尝试了以下方法:
internal int insertRomance(List<romance> romanceCopy)
{
string connect = "Data Source=DB;User ID=DBAPP;Password=*****;pooling=true;min pool size=5;Max Pool Size=60";
string sql = "";
foreach (romance r in romanceCopy)
{
sql = "Insert into TEXT_ITEM (VENDOR_ABBREV,VENDOR_MODEL,VENDOR_PART_NUM,SKU,PRODUCT_DES,WEB_DESCRIPTION,DEPARTMENT,ACLASS,DEPT_CLASS_DESC,PRICE,BILL_OUT_COST,WEIGHT,HEIGHT,WIDTH,ITEM_DEPTH,READY_TO_ASSEMBLE,LEAD_TIME) values ('" +
r.VENDOR_ABBREV + "','" +
r.VENDOR_MODEL + "','" +
r.VENDOR_PART_NUM + "','" +
r.SKU + "',q'{" +
r.PRODUCT_DES + "}',q'{" +
r.WEB_DESCRIPTION + "}','" +
r.DEPARTMENT + "','" +
r.ACLASS + "','" +
r.DEPT_CLASS_DESC + "','" +
r.PRICE + "','" +
r.BILL_OUT_COST + "','" +
r.WEIGHT + "','" +
r.HEIGHT + "','" +
r.WIDTH + "','" +
r.ITEM_DEPTH + "','" +
r.READY_TO_ASSEMBLE + "','" +
r.LEAD_TIME + "');";
int x = this.DataInsertX(sql, connect, 0);
}
throw new NotImplementedException(); //will fix this once I get the code running
}
public int DataInsertX(string sql, string connect, int appendFlag)
{
//for testing
OracleTransaction objtrans = null;
int LastID = 0;
string query = sql;
if (appendFlag == 1)
{
query += ";SELECT @@Identity;";
}
this.OpenX(connect);
try
{
if (oConn2.State.ToString() == "Open")
{
objtrans = oConn2.BeginTransaction();
OracleCommand cmd = new OracleCommand(query, oConn2);
if (appendFlag == 1)
{
LastID = this.ToInt(cmd.ExecuteScalar());
}
else
{
cmd.ExecuteNonQuery();
LastID = 1;
objtrans.Commit();
}
}
this.CloseX();
return this.ToInt(LastID);
}
catch (Exception ex)
{
ex.Message.ToString();
objtrans.Rollback();
this.CloseX();
return 0;
}
问题是两个字段web_Description和product_description这两个字段都可能具有需要转义的字符(或者可能没有) 我的浪漫课基本上是桌子上各领域的一面镜子。这应该根据文档工作,但是我可能有一个较旧的Oracle版本,无法识别
q'{'Test's text}'
转义命令。我一直在尝试查看是否有使用
绑定的任何文档using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
但是文档有限,没有示例。我可以使用一些指导来指导一个好的文档,并提供有关绑定的良好示例,也可以是一个知道我应该研究什么的Oracle专家。更糟的是,我将只替换字符(即,将'$切换为'$),但我想尽可能避免这种情况,因为使用此表中存储的数据的个人必须确保还原符号< / p>