Ошибка при преобразовании из NVARCHAR в ASCII - PullRequest
0 голосов
/ 13 февраля 2020

У меня возникли некоторые проблемы с таблицей (вид?) В SAS Enterprise Guide.

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

DATA Dataset;
SET SAPFolder.TableOrView (KEEP=ColA ColB);
RUN;

Сообщение об ошибке:

ОШИБКА: ошибка расширенного извлечения курсора CLI : [SAP AG] [LIBODBCHDB DLL] [HDBODBC] Общая ошибка; -10427 Преобразование параметра / столбца (2) из ​​типа данных NVARCHAR в ASCII завершилось неудачно

Кажется, я получаю ошибку в произвольных точках, т. е. за несколько попыток он может вернуть 302 400 наблюдений, затем внезапно это число возрастет до 1 320 000 наблюдений, прежде чем оно завершится с ошибкой. Однако это всегда заканчивается ошибкой.

Есть ли способ игнорировать и пропускать строки, которые возвращают ошибку, и просто сохранять все остальные?

У меня нет контроля ни над SAP, ни над лежащие в основе данные, поэтому мое единственное решение - каким-то образом обрабатывать ошибки непосредственно в скрипте и игнорировать строки, в которых есть ошибка. Для моего проекта не важно, если я потеряю строки, которые выдают ошибку.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

Из любопытства, что произойдет, если вы попробуете это?

DATA Dataset;
SET SAPFolder.TableOrView (KEEP=ColA ColB);
if _ERROR_ = 1 then do;
 putlog _all_;
 _ERROR_ = 0;
end;
RUN;

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

0 голосов
/ 14 февраля 2020

Какую версию SAS Enterprise Guide вы используете?

Вашему администратору SAS, возможно, придется изменить способ установки имени сервера SAPFolder для сеансов рабочей станции, которые EG запускает при подключении к профилю. Если это невозможно сразу, вы пытаетесь выполнить пропуск через запросов, которые используют функции SAP для удаления определенных символов или фильтрации строк (т. Е. Оператора where), чтобы никакие «необратимые» данные не попали в библиотечный механизм SAS.

Если вы можете определить, где критерии для одной строки, которую SAS не может преобразовать, и , у вас есть альтернативный способ SAP для просмотра той же строки, вы получите представление о том, какое содержимое данных причина и как его «раздеть» (если это возможно).

...