Я работаю над EDW, который использует SSIS для добавления таблиц SalesForce. Я нахожусь в процессе написания запроса проверки на CData Salesforce Source, который будет возвращать CURRENT_DATEIME () для того момента, когда он был загружен, а также сумму значений столбцов, чтобы использовать их позже в моей стратегии проверки. У меня есть результаты импорта этих столбцов в исходную таблицу проверки в SSMS. Проблема, с которой я сталкиваюсь, состоит в том, что CData по умолчанию устанавливает столбцы в типы данных STRING, когда мне нужно NUMERIC для обоих типов, но, очевидно, вы не можете анализировать, преобразовывать или приводить в запросе SOQL. Каков будет лучший способ конвертировать их?
Вот мой запрос до сих пор .....
SELECT TABLE_NAME, SOURCE_COLUMN_VALUE, COLUMN_NUMBER, LOAD_DATE, LOAD_DATETIME
FROM (
SELECT 'TABLE' AS TABLE_NAME, COUNT(*) AS SOURCE_COLUMN_VALUE, 0 AS
COLUMN_NUMBER, CURRENT_DATE() AS LOAD_DATE, CURRENT_TIMESTAMP() AS
LOAD_DATETIME
FROM [TABLE] UNION ALL
SELECT 'TABLE' AS TABLE_NAME, SUM(CASE WHEN Id IS NULL THEN 0 ELSE 1
END) AS SOURCE_COLUMN_VALUE, 1 AS COLUMN_NUMBER, CURRENT_DATE() AS
LOAD_DATE,CURRENT_TIMESTAMP() AS LOAD_DATETIME FROM [TABLE]
)
Мне нужно преобразовать выбранные столбцы SOURCE_COLUMN_VALUE и LOAD_DATETIME в NUMERIC, используя SOQL.
Я уже пробовал TO_NUMBER () и NUMERIC.PARSE () уже
Это ошибка, которую я продолжаю получать
Ошибка: 0xC020901C в BASS_USER_VALIDATION, Назначение OLE DB [29]: Произошла ошибка с Назначением OLE DB. Входы [Вход назначения OLE DB]. Колонки [LOAD_DATE] на Назначении OLE DB. Входы [Вход назначения OLE DB]. Возвращено состояние столбца: «Не удалось преобразовать значение из-за потенциальной потери данных.».
Ошибка: 0xC0209029 в BASS_USER_VALIDATION, адресат OLE DB [29]: код ошибки SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. «Назначение OLE DB. Входы [Вход назначения OLE DB]» завершилось ошибкой, поскольку произошел код ошибки 0xC0209077, а расположение строки ошибки в «Назначение OLE DB. Входы [Назначение OLE DB]» указывает на ошибку при ошибке. Произошла ошибка в указанном объекте указанного компонента. Перед этим могут быть сообщения об ошибках с дополнительной информацией о сбое.
Ошибка: 0xC0047022 в BASS_USER_VALIDATION, SSIS. Трубопровод: код ошибки SSIS DTS_E_PROCESSINPUTFAILED. Метод ProcessInput для компонента «Назначение OLE DB» (29) завершился ошибкой с кодом ошибки 0xC0209029 при обработке ввода «Вход назначения OLE DB» (42). Указанный компонент возвратил ошибку из метода ProcessInput. Ошибка относится только к компоненту, но является фатальной и приводит к остановке выполнения задачи «Поток данных». Перед этим могут быть сообщения об ошибках с дополнительной информацией о сбое.