DB2 SQL столбцы в строки - PullRequest
       26

DB2 SQL столбцы в строки

0 голосов
/ 25 апреля 2018

Я пытаюсь преобразовать столбцы в строки, как в примере ниже.

 _________________________________     ROW       | Columns  | values_
      |Column1 | Column2  | Column3   _____________________________
 _________________________________     1         | 1        | 12 
 Row 1|     12  |     25  |     11     1         | 2        | 25
 Row 2|     30  |      5  |     15 --> 1         | 3        | 11
                                       2         | 1        | 30
                                       2         | 2        | 5
                                       2         | 3        | 15

Для решения этой проблемы я использовал следующее утверждение

with t as (
      <my query which builds the cross tab>
     )
select t.Row,
       (case when n.n = 1 then Column1
             when n.n = 2 then Column2
             when n.n = 3 then Column3
        end) as values_
from t cross join
     (select 1 as n from sysibm.sysdummy1 union all
      select 2 from sysibm.sysdummy1 union all
      select 3 from sysibm.sysdummy1
     ) n; 

, но получил следующую ошибку

ЗАЯВЛЕНИЕ НЕ МОЖЕТ ИСПОЛЬЗОВАТЬСЯ DB2 ИЛИ В УСКОРИТЕЛЕ (ПРИЧИНА 7).SQLCODE = -4742, SQLSTATE = 560D5, DRIVER = 4.19.56

У кого-нибудь есть подсказки, чтобы решить эту проблему?спасибо

1 Ответ

0 голосов
/ 25 апреля 2018

SQLcode 4772 Причина 7 от ускорителя означает « В запросе используется несколько схем кодирования ».

Проверить эту страницу https://www.ibm.com/support/knowledgecenter/en/SSEPEK_10.0.0/codes/src/tpc/n4742.html.Он советует:

"Если вам нужна дополнительная информация о том, почему оператор не может быть выполнен в ускорителе, введите оператор EXPLAIN и проверьте вывод таблицы DSN_QUERYINFO_TABLE."

Дополнительная информация находится на этой странице , которая рекомендует

Убедитесь, что все объекты, к которым относится запрос, имеют одинаковую схему кодировки.

Talkс вашим администратором баз данных найдите CCSID объектов, включенных в ваш запрос, и соответствующим образом переработайте запрос, например, с временными таблицами, использующими ту же кодировку.

...