永发信息网

db2 数据库兼容问题

答案:2  悬赏:0  手机版
解决时间 2021-03-21 02:43
  • 提问者网友:不要迷恋哥
  • 2021-03-20 08:02
select upper(hbgddm) as gddm ,upper(LEFt(Hbhtxh,6)) as gsdm, max(b.fsetcode) fsetcode,max(FHKTzbz) f

这个SQL在DB2下报如下错,请教高手是为什么。本人对于DB2完全不懂。
DB2 SQL ERROR:SQLCODE:-1585 SQLSTATE:54048

不好意思,SQL写错了,应是下面的:
select upper(hbgddm) as gddm ,upper(LEFt(Hbhtxh,6)) as gsdm, max(b.fsetcode) fsetcode,max(FHKTzbz) fhktzbz from szhb a left join csgdzh b on a.hbgddm = b.Fgddm group by upper(LEFt(Hbhtxh,6)),hbgddm
最佳答案
  • 五星知识达人网友:蓝房子
  • 2021-03-20 08:54
参考下面的说明。
建议的方法是这样的:在查询中先进行某些限制,设法减小查询占用的空间,看看是否成功,以验证问题所在。然后设法调大相关参数。
SQL1585N不存在具有足够页大小的系统临时表空间。
解释:
可能发生了下列其中一种情况:
1. 系统临时表的行长度超过了数据库中最大系统临时表空间中可接受的限制。
2. 系统临时表中所需的列数超过了数据库中最大系统临时表空间中可接受的限制。
系统临时表空间限制取决于其页大小。这些值是:
最大 最大 临时
记录 列数 表空间的
长度 页大小
----------- ---- ------------
1957 字节 244 2K
4005 字节 500 4K
8101 字节 1012 8K
16293 字节 1012 16K
32677 字节 1012 32K

用户响应:
创建受支持的更大页大小的系统临时表空间(如果还没有的话)。若已存在
这种表空间,则从系统临时表中消去一列或多列。按需要创建独立表或视图
来存放超出限制的更多信息。
sqlcode : -1585
sqlstate : 54048
全部回答
  • 1楼网友:第四晚心情
  • 2021-03-20 09:29
从db2 9.7开始,你可以使用下面的查询检查db2中未使用的索引: select indschema,indname,tabname from syscat.indexes where lastused=‘01/01/0001’ lastused列告诉你索引在db2中的最后一次访问时间,但这个方法并不能保证百分之百返回准确的值,因为db2也会将更新这一列的时间当作访问时间,但你可以使用db2pd工具准确地获得自数据库启动以来索引的最后一次访问时间。 这个查询只能工作在db2 9.7或更高版本,但db2pd可以用于其它版本,在syscat.tables,syscat.indexes和syscat.packages表中都已经增加了一列lastused,因此从db2 9.7开始,你可以轻松查询出未使用的索引,表和包。 具体请参见链接
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯