我遇到了一个问题,我不知道我应该如何传入一个 Oracle 参数,其中 C# 类型是 a string
,Oracle 类型是Varchar2
.
目前我路过这个string
作为CMS','ABC
思维,甲骨文将在增加''
围绕这string
使它成为一个varchar2
看起来像'CMS','ABC'
。
这适用于单个string
喜欢CMS
但当值更长时,例如IN (list)
命令中的某些内容,参数将无法正确传递。
这也是我指的代码。
string sql = 'SELECT name FROM Pers p WHERE p.FirstName IN (:names)';
当:names
传入的值CML
没有任何引号时,以下内容有效。
OracleParameter param = new OracleParameter(":names", OracleDbType.Varchar2, "CML", ParameterDirection.Input);
当:names
传入的值CML','ABC
在内部带有引号时,下面不起作用。
OracleParameter param = new OracleParameter(":names", OracleDbType.Varchar2, "CML','ABC", ParameterDirection.Input);
这是为什么?
当参数传入sql语句时,Oracle是否在参数周围加上单引号?为什么不在第二种情况下添加引号?
相关分类