Кажется, что QT, возможно, ест комментарий / подсказку и не передает его в базу данных?Создайте представление в базе данных, используя ваш запрос, и выберите его для подтверждения этой гипотезы:
CREATE OR REPLACE VIEW LastWMIdxView as
SELECT **/*+ index_rs_desc(VIOLATE, VIOLATE) */** WIMINDEX
FROM VIOLATE
WHERE wimindex > 0 and rownum =1;
Затем используйте это представление в своем коде:
QString lastWimIdxQuery = "SELECT wmindex FROM LastWMIdxView";
В качестве альтернативы, вы можете запуститьзапросите как есть и проверьте представление v $ sql, чтобы увидеть, что было проанализировано:
SELECT sql_text
FROm v$sql
WHERE UPPER(sql_text) LIKE '%VIOLATE%';
Если окажется, что комментарии съедены, если только в QT нет способа контролировать это, я думаю, вывероятно, придется использовать вид, как указано выше.