猿问

将 Oracle 参数传递给 SQL 字符串

我遇到了一个问题,我不知道我应该如何传入一个 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是否在参数周围加上单引号?为什么不在第二种情况下添加引号?


忽然笑
浏览 297回答 2
2回答
随时随地看视频慕课网APP
我要回答