SQLCODE: -420, SQLSTATE: 22018, SQLERRMC: BIGINT - PullRequest
3 голосов
/ 17 мая 2011

[Запуск DB2 UDB версии 9] Почему этот оператор SQL работает

SELECT 
       CASE
       WHEN A.DAILYDOWNLOADSIZE is null THEN 0
    else bigint(A.DAILYDOWNLOADSIZE)
       END "DAILYDOWNLOADSIZE",
       CASE
       WHEN A.DAILYDOWNLOADTIME is null THEN 0
    else bigint(A.DAILYDOWNLOADTIME)
       END "DAILYDOWNLOADTIME"
FROM 
EDMPROD.MQT_STB_FACTS A 

... когда этот оператор не

SELECT DISTINCT 
bigint(A.CAMID) AS "CAMID",
bigint(A.RID) AS "RID",
A.SOFTWAREVERSION,
A.MODELNUMBER,
A.MANUFACTURERID,
A.MODDATE,
A.POSTTIME,
A.DELIVERYMETHOD,
bigint(A.UPTIME )  AS "UPTIME",
bigint(A.NUMBEROFRESETSSINCELASTSWDL )  AS "NUMBEROFRESETSSINCELASTSWDL",
bigint(A.NUMBEROFSEARCHSIGNALOSDTUNER1 ) AS "NUMBEROFSEARCHSIGNALOSDTUNER1",
bigint(A.NUMBEROFSEARCHSIGNALOSDTUNER2 ) AS "NUMBEROFSEARCHSIGNALOSDTUNER2",
bigint(A.NUMBEROFUSERDISKREFORMATS ) AS "NUMBEROFUSERDISKREFORMATS",
bigint(A.NUMBEROFSYSTEMDISKREFORMATS ) AS "NUMBEROFSYSTEMDISKREFORMATS",
bigint(A.NUMBEROFRECOVEREDDISKERRORS ) AS "NUMBEROFRECOVEREDDISKERRORS",
IPINFO,
       CASE
       WHEN A.DAILYDOWNLOADSIZE is null THEN 0
    else bigint(A.DAILYDOWNLOADSIZE)
       END "DAILYDOWNLOADSIZE",
       CASE
       WHEN A.DAILYDOWNLOADTIME is null THEN 0
    else bigint(A.DAILYDOWNLOADTIME)
       END "DAILYDOWNLOADTIME",
bigint(A.TOTALNUMBEROFDOWNLOADSSTARTED ) AS "TOTALNUMBEROFDOWNLOADSSTARTED",
bigint(A.TOTALNUMOFCOMPLETEDDLS ) AS "TOTALNUMOFCOMPLETEDDLS",
CURRENT_DATE AS "LOAD_DATE"
FROM 
EDMPROD.MQT_STB_FACTS A 

Я получаю ошибку SQL0420NВ аргументе строки символов функции "BIGINT" найден недопустимый символ.SQLSTATE = 22018 .

Устраняя неполадки в запросе, я подтверждаю, что виновниками являются два столбца DAILYDOWNLOADSIZE и DAILYDOWNLOADTIME.Оба должны быть преобразованы из символа (15) в bigint.

Что не работает второй оператор SQL ???

1 Ответ

1 голос
/ 17 мая 2011

Я сходил с ума по этому поводу, поэтому я внес простое изменение в свою промежуточную таблицу (EDMPROD.MQT_STB_FACTS).

Вместо того, чтобы вводить столбцы как символы и затем приводить их как bigint, я отбрасывал и создавал зановомоя таблица с типами данных, установленными в BIGINT (8).

Я удалил преобразования из своего оператора SQL, и ошибка исчезла.

Перейти рисунок ..........

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...