Ошибка неверного номера Oracle в C # - PullRequest
0 голосов
/ 11 августа 2010

Я запускаю приведенный ниже код в своем приложении C # .Net, но получаю сообщение об ошибке ORA-01722: недействительный номер .При запуске того же самого SQL непосредственно в PL / SQL Developer, он делает именно то, о чем я его прошу, не жалуясь.

Что может быть причиной этого?

OracleCommand command = connection.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = "insert into my_table ( select i.*, null from my_view i where i.usr_id is not null )";
command.ExecuteNonQuery();

Примечание: я использую Oracle.DataAccess.Client

Ответы [ 2 ]

2 голосов
/ 11 августа 2010

Я нашел проблему. Один из числовых столбцов в представлении использовал запятую (,) в качестве десятичного разделителя, тогда как в таблице ожидалась точка (.).

Спасибо за помощь людям. :)

1 голос
/ 11 августа 2010

Я не уверен, может ли это привести к разному поведению между разработчиком и вашим клиентом, но вы предполагаете, что порядок столбцов в представлении и таблице одинаков. возможно , хотя маловероятно, что он пытается вставить данные символа из столбца в представлении в числовое поле в таблице, просто упорядочив их по-разному.Попробуйте указать имена столбцов во вставке и выберите, и посмотрите, поможет ли это.Я также задавался вопросом, было ли несоответствие формата даты, но я не вижу, как это вызвало бы проблему в одном утверждении.Если это упрощенная версия, есть ли у реальной параметры?

...