Проблема решена. Если кто хочет знать как - скажу.
А чего бы сразу не рассказать?
А потому что мне никто не отвечал, я обиделся и сам проблему решил
Вообщем так: я нашел в инете такую же проблему у одного китайского товарища
http://qtforum.org вот тут он жаловался пару месяцев назад, но ему не помогли.
После диагностики выяснилось что с QT4 Oracle работает почти хорошо, есть только проблема с показыванием числовых полей со значением > 2 знаков. Эта проблема тоже обсуждалась там же но ответа тоже не нашли. И так как мне QT4 не понравилась - я ее тоже не решал. Как работает QT 3.3.4 и Oracle:
Собираем Oracle client 8i+QT 3.3.4: соединяемся с Oracle 8i - driver()->hasFeature(Unicode) = false - все в порядке
Соединяемся с Oracle 9i driver()->hasFeature(Unicode) = true - UTF8 выводится побайтно=кракозяблы
Собираем Oracle client 9i+QT 3.3.4: соединяемся хоть с какой версией Oracle = кракозяблы.
Пришлось лезть в исходники:
qt\3.3.4\src\sql\drivers\oci\qsql_oci.cpp line 40
// uncomment this if you have problems
// with oracle character sets
//#define QOCI_NO_CHARSET_CONVERSION
ну вот в принципе и все. После перекомпиляции - все заработало. все по-русски.