Выражение SchemaId
выглядит следующим образом:
SUBSTRING((DT_WSTR,15)PCMRetrievalCode,3,FINDSTRING(((DT_WSTR,15)PCMRetrievalCode),"C"C,1) - 3)
Я думаю, что проблема вызвана функцией FINDSTRING
.Если столбец PCMRetreievalCode
не содержит "C"
или вернет индекс < 3
, то FINDSTRING(((DT_WSTR,15)PCMRetrievalCode),"C",1) - 3
сгенерирует исключение, поскольку в функции SUBSTRING
параметр длины должен быть положительным.
Вы можете добавить условное ? :
для решения проблемы:
FINDSTRING(((DT_WSTR,15)PCMRetrievalCode),"C",1) >= 3 ? SUBSTRING((DT_WSTR,15)PCMRetrievalCode,3,FINDSTRING(((DT_WSTR,15)PCMRetrievalCode),"C"C,1) - 3) : ""
Еще одно предложение - увеличить длину столбца более чем на 13.