У меня проблема с тем, что я не знаю, как мне передать параметр Oracle, где тип C # - string
, а тип Oracle - Varchar2
.
* 1004.* В настоящее время я передаю
string
как
CMS','ABC
, думая, что Oracle добавит
''
, который окружает
string
, что делает его
varchar2
, который выглядит как
'CMS','ABC'
.
Это работает для одного string
, например CMS
, но когда значение больше, например, в команде IN (list)
, параметр не будет передан правильно.
Это код Iтоже имею в виду.
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);
Почему это так?
Добавляет ли Oracle одинарные кавычки вокруг параметра при его передачев заявление SQL?Почему он не добавляет кавычки вокруг второго случая?