Полагаю, здесь - это третий столбец, возвращаемый в вашем наборе результатов, но это просто пустая строка, потому что @@
не найдено, начиная с 30-й позиции.Чтобы проверить эту гипотезу, используйте следующий запрос:
SELECT
DBExternalAlarm.m_ObjectDN,
INSTR(DBExternalAlarm.m_ObjectDN,'@@',30),
CASE WHEN INSTR(DBExternalAlarm.m_ObjectDN,'@@',30) > 0
THEN SUBSTR(DBExternalAlarm.m_ObjectDN, 1,
INSTR(DBExternalAlarm.m_ObjectDN,'@@',30))
ELSE 'Not Found' END AS result
FROM DBExternalAlarm;
Я не знаю вашу базу данных, но в Oracle INSTR
вернет 0, если строка не найдена.Приведенное выше выражение CASE
проверяет это и в этом случае выдает Not Found
.Если вы увидите это повсюду, то узнаете, что совпадений нет.