2013-12-04 3 views
0

Следующий запрос в моем oracle db дает результаты, которые отлично смотрятся при запуске в SQL Developer.OleDbDataReader не дает те же результаты, что и разработчик SQL

select * 
from guideline$ a left outer join textfragment$ t 
    on (a.TEXTFRAGMENT_CODE = t.TEXTFRAGMENT$_CODE) 
start with a.knowledge$_Code = 71122 and a.guideline$_pcode is null 
connect by prior a.guideline$_Code = a.guideline$_pcode 
order SIBLINGS by a.tag_order 

Все строки заполнены правильно. Когда тот же самый точный запрос запускается в моей программе с использованием OleDbReader.ExecuteReader(), некоторые строки содержат нулевое значение для определенного столбца, когда они не были в моих результатах SQL Developer. Тип данных этого столбца - CLOB. Я не вижу никакого шаблона относительно того, почему некоторые из строк имеют нулевое значение, а некоторые нет.

Не уверен, что другая информация будет полезна ...

Кто-нибудь есть какие-либо идеи о том, что может быть происходит?

+0

Какой метод вы используете для чтения значения столбца CLOB? 'GetBytes()'? – neutrino

+0

GetValue(), а затем Convert.ToString() ... (я не писал этот код) – ZWand19

ответ

0

Ваша проблема может быть связана с способом получения двоичных данных с помощью OleDbDataReader.

Вы должны использовать GetBytes() и следовать за this article.

+0

Спасибо, выглядит перспективным – ZWand19

+0

продолжать получать InvalidCastException при попытке использовать GetBytes() или GetChars() – ZWand19

+0

Какой драйвер OleDb ты используешь? – neutrino

Смежные вопросы