Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 NULL-овский столбец в SQL-запросе  [new]
BuryCommoner
Member

Откуда:
Сообщений: 177
DB2 9.5

В процедуре код:
...
SET v_credits = XMLQUERY('
let $null := ()
return element credits {
for $i in db2-fn:sqlquery(''
 SELECT XMLELEMENT(NAME "r", XMLATTRIBUTES(id AS "id", kom_service_id AS "kom_service_id"))
 FROM u.credits_services
 WHERE split = 1 AND per_month = PARAMETER(1)
 UNION ALL
 SELECT XMLELEMENT(NAME "r", XMLATTRIBUTES(id AS "id", 0 AS "kom_service_id"))
 FROM u.credits_services
 WHERE split = 0 AND per_month = PARAMETER(1)
'', $inxml/acc_pay/@per_month)
return $i
}
' passing p_acc_pay_xml AS "inxml");
...

В SQL-запросе во второй части нужно в поле kom_service_id выдать NULL, а не 0. Если подставить NULL, то выдает ошибку. Если поставить параметр с пустым значением, ругается, что нельзя использовать параметры в полях в SELECT. Как можно сделать, чтобы одно поле всегда было NULL-овским (в выходном элементе отсутствовал соответствующий атрибут)? И ещё хотелось бы узнать, будет ли в DB2-XQuery поддержка полностью вычисляемых конструкторов элементов? Пишет, что нельзя вычислять имя элемента, хотя в спецификации можно.
13 ноя 08, 12:19    [6434027]     Ответить | Цитировать Сообщить модератору
 Re: NULL-овский столбец в SQL-запросе  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2550
Обычно вместо NULL положено писать CAST(NULL AS тип-данных).
17 ноя 08, 12:17    [6448691]     Ответить | Цитировать Сообщить модератору
 Re: NULL-овский столбец в SQL-запросе  [new]
BuryCommoner
Member

Откуда:
Сообщений: 177
Спасибо. До этого просто не знал, что у NULL-а тип есть, и надо так писать. Во всех процедурах заводили переменную со значением NULL и подставляли в запрос.
17 ноя 08, 18:20    [6451613]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить