ORA-01460: conversão não implementada ou não razoável solicitada
Quando executo o seguinte código .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();
}
}
Estou tendo o erro a seguir:
ORA-01460: unimplemented or unreasonable conversion requested
ORA-02063: preceding line from XXX
Este não é meu banco de dados, e eu não tenho controle sobre as instruções select que recebo, essa tabela é de um link de banco de dados.
O engraçado é que se eu adicionar o seguinte código antes do ExecuteReader, ele funcionará bem.
c.CommandText = c.CommandText.Replace("\r\n", " ");
Infelizmente isso não é uma boa solução no meu caso, como eu não posso controlar para o SQL, mas eu posso mudar isso dessa maneira.
Quanto à própria tabela, as colunas são: c1 Número (5) c2 varchar2 (40) c3 varchar2 (20).
Eu sei que ORA-02063 que vem depois indica algo sobre um link de banco de dados, mas eu olhei na tabela synonim e não veio de qualquer database_link, e também não acho que \ r \ n deve afetar o link do banco de dados.
Eu tentei executar a consulta sem parâmetros ligados e funcionou - mas novamente uma prática ruim para fazê-lo em um termo geral.
O problema é que uma ferramenta concorrente que não é baseada em .net está funcionando e, portanto, não é um problema geral.
Também não consegui reproduzir o problema em meu próprio ambiente, este é um banco de dados e um site do cliente. Estou usando o cliente instantâneo 11.1.6.20 e também testei com o cliente instantâneo 11.2.3.0
O db é 10 e o link db é para um banco de dados oracle v8
Qualquer ajuda seria apreciada