Почему система не может запускать динамический SQL с переменной привязки C#?C#

Место общения программистов C#
Ответить
Anonymous
 Почему система не может запускать динамический SQL с переменной привязки C#?

Сообщение Anonymous »

У меня есть данные запроса функции из БД. Раньше мы использовали System.Client.Oracle, и приведенный ниже код работал:

Код: Выделить всё

{
text2 += "     LEFT JOIN CONTACT_GROUP CG ON C.CONTACT_ID = CG.CONTACT_ID \r\n LEFT JOIN TABLE(NUMBER_LIST(:GROUP_IDS)) TG ON CG.GROUP_ID = TG.COLUMN_VALUE ";
oracle_DataAccess.SetParameter("GROUP_IDS", string.Join(",", list));
text += " AND (TG.COLUMN_VALUE IS NOT NULL";
}
но когда мы обновили новую библиотеку (Oracle.ManagedDataAccess.Client), она не заработала. Я узнал, что делаю запрос с помощью string.Join(",", list), помещенного в оператор запроса --> работает.

Код: Выделить всё

text2 += "     LEFT JOIN CONTACT_GROUP CG ON C.CONTACT_ID = CG.CONTACT_ID \r\n LEFT JOIN TABLE(NUMBER_LIST('" + string.Join(",", list) + "')) TG ON CG.GROUP_ID = TG.COLUMN_VALUE ";
NUMBER_LIST в операторе запроса — это функция, которая помогает преобразовать VARCHAR2 -> коллекцию (таблицу)
Мне нужен запрос типа случая 1, потому что он имеет много подобных функций поэтому я не могу конвертировать все. Как мне это сделать?

Подробнее здесь: https://stackoverflow.com/questions/793 ... variable-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»