У меня есть функция в DB2 с табличным значением, которая принимает AddressCode в качестве одного из параметров. AddressCode имеет тип Char (50).
Когда я передаю одно строковое значение из моего C# кода, например AddressCode = "ABE001". Он работает нормально, однако, когда я передаю два значения
, например,
string mAddressCode = "M0044";
string bAddressCode = "B0608";
string formattedAddressCode = mAddressCode + bAddressCode;
, я получаю следующее исключение
$exception {"ERROR [42601] [IBM][AS] SQL0104N An unexpected token \"MUL0044\" was found following \"\". Expected tokens may include: \") ,\"."} IBM.Data.DB2.Core.DB2Exception
My where в функции Table Valued выглядит вот так
WHERE A . EMPSFT = 'Y' AND A . EMUKCD in ADDRESScODE
Я хотел бы узнать, как отформатировать строку, которая будет использоваться для предложения IN в DB2.
Работает следующее предложение where
WHERE A . EMPSFT = 'Y' AND A . EMUKCD in ('M0044','B0608')
Сценарий SQL передается в DB2 так:
string formattedAddressCode = string.Join(",", addressCode.Split(',').Select(x => $"'{x}'"));
string sql = $"SELECT * FROM TABLE ( ABELIBLE.TVFBOEGETSHIPMENTS ( '{formattedStartDate}', '{formattedEndDate}' , '{formattedAddressCode}') )";
sql строка выглядит так
SELECT * FROM TABLE ( ABELIBLE.TVFBOEGETSHIPMENTS ( '2020-07-06', '2020-08-05' , ''M0044','B0608'') )