2016-09-27 7 views
0

При написании управляемой вставки с использованием ODP.net, если есть какая-либо проблема со вставкой (метод параметра), я получаю очень общую ошибку, которую я использую, это просто оракул, дающий мне знать, что она остановлена. Внутреннего следа нет.Общая проблема SQL ODP.net и возвращаемая ошибка Oracle 3111 - лучший способ обработки?

ORA-03111: Перерыв получил по каналу связи

Я могу смотреть на журналы, которые очень болезненно, но есть способ, чтобы получить реальную реальную ошибку за вещами? Например, я проследил его до переполнения символа на одном столбце. Исходные данные беспорядочны, и я уже много занимаюсь чисткой, но я не полностью контролирую, что может показаться. Выбросить работоспособную ошибку, указывающую на реальную проблему, было бы так полезно :) Спасибо.

+0

Для ошибок, подобных этому, когда соединение убивается, вам нужно посмотреть журналы базы данных .. журнал ALERT. Реальная ошибка будет там. Это может быть ошибка базы данных. –

ответ

0

нормально, только нужно отходить, я думаю. Когда я обертываю это в try/catch и поймаю ORACLEEXCEPTION, он дает мне гораздо лучшую информацию.

  try 
      { 
       cmd.ExecuteNonQuery(); 
      } 
      catch (OracleException e) 
      { 
       Console.WriteLine(e); 
      } 
      catch (Exception e) 
      { 

      } 

Сообщение теперь это: "ORA-12899: значение слишком велико для столбца \" zschema \ UPLOAD_V_I \ COUNTY \ "(фактическая: 15, максимум: 3) "" \ "" \."

+0

Покажите нам выполненное заявление. –

+0

Не добавляйте дополнительную информацию в качестве ответов. ** Редактируйте ** свой вопрос –

+0

Хмм, вы имеете в виду мой ответ Лошадь без имени? Есть целый раздел faq об использовании ответа на мою собственную кнопку вопроса и о том, как это поощряется. Почему бы мне не использовать его, как реализовано, или редактировать вопрос? Это не дополнительная информация, но ответ, который я нашел позже в тот день? * Испуг * – Davery