ORA-01460: запрошено невыполненное или необоснованное преобразование
Когда я запускаю следующий код .Net:
using (var c = Shared.DataSources.BSS1.CreateCommand())
{
c.CommandText = "\r\nSelect c1, c2, c3, rowid \r\nFrom someSpecificTable \r\nWhere c3 = :p0";
var p = c.CreateParameter() as Oracle.DataAccess.Client.OracleParameter;
c.Parameters.Add(p);
p.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2;
p.DbType = System.Data.DbType.AnsiString;
p.Size = 20;
p.Value = "007";
p.ParameterName = ":p0";
using (var r = c.ExecuteReader())
{
r.Read();
}
}
Я получаю следующую ошибку:
ORA-01460: unimplemented or unreasonable conversion requested
ORA-02063: preceding line from XXX
Это не моя база данных, и я не могу контролировать операторы выбора, которые я получаю, эта таблица исходит из ссылки на базу данных.
Самое смешное, что если я добавлю следующий код непосредственно перед ExecuteReader, он будет работать нормально.
c.CommandText = c.CommandText.Replace("\r\n", " ");
К сожалению, в моем случае это не очень хорошее решение, так как я не могу контролировать SQL, и я могу изменить его таким образом.
Что касается самой таблицы, столбцы: c1 номер (5) c2 varchar2 (40) c3 varchar2 (20).
Я знаю, что ORA-02063, который идет после, указывает что-то о ссылке на базу данных, но я посмотрел в таблице синонимов, и она не была получена из любой базы данных, и я также не думаю, что \ r \ n должен влиять на ссылку на базу данных.
Я попытался выполнить запрос без привязанных параметров, и он сработал - но опять же плохая практика делать это в общем плане.
Проблема в том, что конкурирующий инструмент, который не основан на .Net, работает и, таким образом, не является общей проблемой.
Я также не смог воспроизвести проблему в моей собственной среде, это база данных клиентов и сайт. Я использую мгновенный клиент 11.1.6.20, а также протестировал его с мгновенным клиентом 11.2.3.0
БД 10, а ссылка БД на базу данных oracle v8
Любая помощь будет оценена