gpt4 book ai didi

oracle - ORA-01460 : unimplemented or unreasonable conversion requested

转载 作者:行者123 更新时间:2023-12-04 13:14:25 26 4
gpt4 key购买 nike

当我运行以下 .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 表示有关数据库链接的某些内容,但我查看了同义词表,它不是来自任何 database_link,而且我认为\r\n 不会影响数据库链接。

我尝试在没有绑定(bind)参数的情况下运行查询,它确实有效 - 但笼统地说,这样做也是不好的做法。

问题在于不是基于.Net 的竞争工具正在运行,因此这不是一个普遍问题。

我也无法在我自己的环境中重现该问题,这是一个客户数据库和站点。
我正在使用即时客户端 11.1.6.20,还使用即时客户端 11.2.3.0 对其进行了测试

db 为 10,db 链接指向 oracle v8 数据库

任何帮助,将不胜感激

最佳答案

可以通过直接的步骤重新创建此问题。也就是说,任何具有字符串文字的 SQL 查询,在 where 子句中,长度超过 4000 个字符都会给出错误“ORA-01704:字符串文字太长”

但是,当通过 JDBC 执行相同的查询时,它会给出“ORA-01460:未实现或不合理的转换请求”

关于oracle - ORA-01460 : unimplemented or unreasonable conversion requested,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11036300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com