Oracle供应商代码17002大选择列

时间:2013-02-07 21:52:43

标签: oracle

执行在多个表上返回大量列的选择时,会收到错误“供应商代码17002”。查询仅返回一个结果。当返回的列数小于635时,查询有效。添加另一列时,会看到错误。

在转储文件中看到以下内容:

Exception [type: ACCESS_VIOLATION, UNABLE_TO_READ] [ADDR:0x45] [PC:0x35797B4, _kkqstcrf()+1342]
DDE: Problem Key 'ORA 7445 [kkqstcrf()+1342]' was flood controlled (0x6) (incident: 10825)
ORA-07445: exception encountered: core dump [kkqstcrf()+1342] [ACCESS_VIOLATION] [ADDR:0x45] [PC:0x35797B4] [UNABLE_TO_READ] []
Dump file c:\app\7609179\diag\rdbms\orcl\orcl\trace\orcl_s001_9928.trc
Thu Feb 07 15:10:56 2013
ORACLE V11.2.0.1.0 - Production vsnsta=0
vsnsql=16 vsnxtr=3
Dumping diagnostics for abrupt exit from ksedmp

Windows 7,Oracle 11.2.0.1.0企业版,SQL Developer,与Java Application相同的结果。

1 个答案:

答案 0 :(得分:1)

ORA-07445是一个常规错误,Oracle用它来表示操作系统中的意外行为,即错误。

该跟踪文件中应该有一些其他信息:

c:\app\7609179\diag\rdbms\orcl\orcl\trace\orcl_s001_9928.trc

你看过了吗?

不幸的是,ORA-07445的性质意味着解决问题的根本原因在于平台,操作系统和数据库版本的特定组合。 Oracle已经发布了一些有关诊断的建议,但大多数路由都会调用Oracle支持。 Find out more

至少你知道眼前的原因。因此,如果您没有支持合同,则有一种解决方法:更改您的应用程序,这样您就不必选择第635列。这是在单个查询中有很多列。

查询预测中允许的列数没有实际限制,但语句的总长度可能超出限制。此限制因多种因素而异isn't ispecified in the docs。多少(多少个字符)是声明与那个讨厌的附加列?也许缩短一些列名就行了。