Числовое значение abc_0011O00001y31VpQAI не распознается в снежинке - PullRequest
0 голосов
/ 08 октября 2019

(Открытие следующего от имени клиента Snowflake ...)


При попытке вставить в таблицу выдается следующее сообщение об ошибке:

Числовое значение'abc_0011O00001y31VpQAI' не распознан

Необходимо проверить таблицу DDL и найти только 3 столбца, определенных как NUMBER, а остальные как VARCHAR.

Я проверил запрос SELECT и не нашел никакого строкового значенияв этих столбцах NUMBER Datatype. Также пытался найти во всех столбцах Varchar значение 'abc_0011O00001y31VpQAI', я не нашел ни одного

Я знаю, что Snowflake не всегда показывает правильную ошибку. Я что-то здесь упускаю? Есть ли способ исправить это?

Оба COL4_MRR и COL5_QUANTITY являются NUMBER

    INSERT INTO TABLE
    (COL1_DATE, COL2_CD, COL3_CUST_NAME, COL3_LOC_NAME,COL4_MRR,COL5_QUANTITY)

    SELECT 
     '2019-10-03' AS COL1_DATE ,
       'AE' AS COL2_CD
       ,CUSTOMER_NAME AS COL3_CUST_NAME
       ,LOCATION_NAME AS COL3_LOC_NAME
       ,MRR_BILLED as COL4_MRR
       ,QTY_BILLED as COL5_QUANTITY
    FROM SCHEMA.V_TABLEA
    union all 
            SELECT 
     '2019-10-03' AS COL1_DATE ,
       'BE' AS COL2_CD
       ,CUSTOMER_NAME AS COL3_CUST_NAME
       ,LOCATION_NAME AS COL3_LOC_NAME
       ,NULL as COL4_MRR
       ,QTY_BILLED as COL5_QUANTITY
    FROM SCHEMA.V_TABLEB

Я создал table_D так же, как оригинальный TABLE и попытался вставить в него, этоработал нормально. Затем вставленный в Original TABLE из table_D, он снова сработал.

Удалил эти строки из оригинальной TABLE и перезапустил задание, все заработало.

Не было проблем с данными, так как все было только NumberЯ даже попробовал с TRY_TO_NUMBER тоже. Он вставил данные без каких-либо изменений в код.

...............

В настоящее время клиент ожидает запуска следующего дня, чтобы повторнопроверить, чтобы определить, является ли это ошибкой или проблемой с их данными. В то же время нам интересно узнать, сталкивался ли кто-либо с подобными проблемами и имеет ли жизнеспособную рекомендацию. СПАСИБО.

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Запросы SELECT работают нормально, я попытался создать новую таблицу с тем же DDL, что и оригинал, и попытался загрузить в эту новую таблицу, она работала нормально. Не уверен, почему он не загружается в исходную таблицу

0 голосов
/ 09 октября 2019

Ошибка обычно означает, что вы пытаетесь вставить нечисловые данные (например, 'abc_0011O00001y31VpQAI') в числовой столбец. Похоже, что клиент все сделал правильно в тестировании, и TRY_TO_NUMBER () - отличный способ проверить числовые данные.

Запросы SELECT работают нормально отдельно? Если это так, то я бы проверил, возможно ли несоответствие в типе данных столбцов, и убедился, что они в правильном порядке.

Я бы также проверил, пропускается ли заголовок в файле (это может быть из-за того, откуда исходит abc_0011O00001y31VpQAI, так как клиент не видел его в данных).

...