Проблема
Я работаю над экспортом данных из базы данных Intersystems Cache через драйвер Cache ODBC.Есть конкретная таблица, которая дает мне сообщение об ошибке.Драйвер ODBC аварийно завершает работу и сообщает об ошибке из системы кэширования.Я думаю, что смог отследить, откуда возникла ошибка, но я не знаю, как ее отладить или исправить.
Таблица, которую я пытаюсь извлечь, называется SEDMIHP
.
Вот ошибка:
[Cache Error: <<UNDEFINED>%0AmBd16^%sqlcq.PRD.3284 ^SEDMIHP(4,77)>]
[Location: <ServerLoop - Query Fetch>]
Research / Trial & Error
Мне удалось открыть Cache Management Studio и найти класс, который соответствует имени таблицы.Я должен отметить, что я впервые работаю с Intersystems Cache, поэтому я прошу прощения, если я чувствую себя глупым или неопытным здесь.
В SQLMap
я нашел этот код:
<Data name="DESCRIP_2">
<RetrievalCode> S {DESCRIP_2}=$P($G(^PHPROP({L1},"DESC_CODES")),"\",2) S {DESCRIP_2}=$S($L({DESCRIP_2}):^SEDMIHP($P({DESCRIP_2},","),$P({DESCRIP_2},",",2)),1:{DESCRIP_2})
S {DESCRIP_2}=$E({DESCRIP_2},1,80)
</RetrievalCode>
</Data>
Я думаю, что код здесь вызывает проблему.С моим очень ограниченным пониманием ObjectScript, я думаю, что этот код манипулирует текстом / строкой, и, может быть, если в данных есть неопределенное или неверное значение, это заставляет эти функции выдавать ошибку?
Я ограничендоступ к порталу управления кэшем, и я могу найти таблицу в схеме SQL и выполнить запрос по ней.Около 300 строк данных загружаются до того, как появляется та же ошибка, что и выше, и она перестает загружать больше строк.Вот почему я думаю, что есть неверные данные.
Я пытался использовать ISNULL()
и IFNULL()
в операторе SELECT, чтобы попытаться пропустить все неверные данные, но у меня возникала одна и та же ошибка в каждом местевремя.
Вопросы
- Есть ли простое решение со стороны SQL, которое может избежать этой ошибки?
- Могу ли я что-нибудь сделать с кодом класса вСтудия для отладки или получения дополнительной информации об этой ошибке?
Любая и вся помощь очень ценится!
Дополнительная информация
Версия кэша: Cache for OpenVMS/IA64 V8.4 (Itanium) 2012.1.5 (Build 956 + Adhoc 12486) 17-APR-2013 19:49:58.07