Java ORA-01792:表或视图中的最大列数为1000
我有使用Oracle db的java web应用程序。 Web应用程序使用hibernate。 我有两个oracle实例——第一个在服务器上,第二个在本地虚拟linux机上 当我在某个点连接到本地oracle实例时 ORA-01792:表或视图中的最大列数为1000 例外。但当我连接到oracle(位于服务器中)时,并没有出现这种异常。我正在做完全相同的动作,转储也是一样的。所以我认为甲骨文的问题。 也许有些配置不同 有人能告诉我oracle服务器之间的差异是什么导致了这种情况吗 更新。stacktrace的某些部分Java ORA-01792:表或视图中的最大列数为1000,java,sql,oracle,hibernate,Java,Sql,Oracle,Hibernate,我有使用Oracle db的java web应用程序。 Web应用程序使用hibernate。 我有两个oracle实例——第一个在服务器上,第二个在本地虚拟linux机上 当我在某个点连接到本地oracle实例时 ORA-01792:表或视图中的最大列数为1000 例外。但当我连接到oracle(位于服务器中)时,并没有出现这种异常。我正在做完全相同的动作,转储也是一样的。所以我认为甲骨文的问题。 也许有些配置不同 有人能告诉我oracle服务器之间的差异是什么导致了这种情况吗 更新。stac
Caused by: org.hibernate.exception.SQLGrammarException: could not initialize a collection:
Caused by: java.sql.SQLSyntaxErrorException: ORA-01792: maximum number of columns in a table or view is 1000
ORA-01792:表或视图中的最大列数为1000
此限制不仅适用于表和视图,还适用于Oracle在执行子查询时创建的临时内联视图和临时内部内存表
比如说,
Oracle基于合并选择创建临时内联视图,因此对该临时内联视图实施相同的限制。因此,您需要确保子选择或子查询中的列数也不超过1000的限制
原因:org.hibernate.exception.sqlgrammareexception:无法初始化集合:
上述错误表示您正试图创建一个集合,该集合超出了允许的列数限制,即总列数超过1000
要避免此异常并跳过此限制的检查,您可以设置一个_fix\u控制参数,
比如:
更改会话集“\u fix\u control”='17376322:OFF'
或
更改系统设置“\u修复\u控制”='17376322:OFF'
(适用于Oracle 12.1.0.2标准和企业版)当您将Oracle连接到第二台机器时,问题就开始了?@Moudiz No当我在web应用程序中执行某些特定操作时。查看哪种查询(HQL和生成的SQL)会很有趣真正生成此问题可能您的应用程序正在基于数据动态生成SQL,因此,当两个环境中的数据不相同时,生成的SQL很可能不同。我几乎可以肯定数据也相同。(但感谢您的评论,我将再次检查。代码完全相同,当我连接到服务器上的oracle时,我没有得到expetion。@user1321466应用程序可能正在基于数据生成数据库对象,因此在您的两个环境中,数据可能不相同。