为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: DM8
【操作系统】:win10
【CPU】:i5
【问题描述】*:
总共1个语句正依次执行...
[执行语句1]:
SELECT cs_optical_disc.DISC_ID AS DISC_ID,
cs_optical_disc.SLOT_ID AS SLOT_ID,
cs_optical_disc.MAG_RFID1 AS MAG_RFID1,
cs_optical_disc.POOL_ID AS POOL_ID,
cs_optical_disc.DISC_FILE_ID AS DISC_FILE_ID,
cs_optical_disc.DISC_LABEL_PHY AS DISC_LABEL_PHY,
cs_optical_disc.DISC_LABEL AS DISC_LABEL,
cs_optical_disc.DISC_STATE AS DISC_STATE,
cs_optical_disc.DISC_RUN_STATE AS DISC_RUN_STATE,
cs_optical_disc.SLOT_PATH AS SLOT_PATH,
cs_optical_disc.SLOT_NAME AS SLOT_NAME,
cs_optical_disc.DISC_TYPE AS DISC_TYPE,
cs_optical_disc.BUFFER_PATH AS BUFFER_PATH,
cs_optical_disc.DISC_TSIZE AS DISC_TSIZE,
cs_optical_disc.PRE_MAG AS PRE_MAG,
cs_optical_disc.DISC_USIZE AS DISC_USIZE,
cs_optical_disc.BELONG_ORG AS BELONG_ORG,
cs_optical_disc.CREAT_TIME AS CREAT_TIME,
cs_optical_disc.UPDATE_TIME AS UPDATE_TIME,
cs_optical_disc.CREAT_USER AS CREAT_USER,
cs_optical_disc.UPDATE_USER AS UPDATE_USER,
cs_optical_disc.MIRROR_SLOTPATH AS MIRROR_SLOTPATH,
cs_optical_disc.MIRROR_SLOTNAME AS MIRROR_SLOTNAME,
max(bc_optical_task.OTASK_ID) AS OTASK_ID
FROM cs_optical_disc,
cs_disc_slot,
bc_optical_task
WHERE cs_optical_disc.DISC_ID = cs_disc_slot.DISC_ID
AND cs_disc_slot.OTASK_ID = bc_optical_task.OTASK_ID
AND (
cs_optical_disc.PRE_MAG = 'DrvRead'
OR cs_optical_disc.PRE_MAG = 'Download'
)
AND cs_optical_disc.DISC_RUN_STATE != 22
AND cs_optical_disc.DISC_RUN_STATE != 23
GROUP BY cs_optical_disc.DISC_ID,
cs_optical_disc.SLOT_ID,
cs_optical_disc.MAG_RFID1,
cs_optical_disc.POOL_ID,
cs_optical_disc.DISC_FILE_ID,
cs_optical_disc.DISC_LABEL_PHY,
cs_optical_disc.DISC_LABEL,
cs_optical_disc.DISC_STATE,
cs_optical_disc.DISC_RUN_STATE,
cs_optical_disc.SLOT_PATH,
cs_optical_disc.SLOT_NAME,
cs_optical_disc.DISC_TYPE,
cs_optical_disc.BUFFER_PATH,
cs_optical_disc.DISC_TSIZE,
cs_optical_disc.PRE_MAG,
cs_optical_disc.DISC_USIZE,
cs_optical_disc.BELONG_ORG,
cs_optical_disc.CREAT_TIME,
cs_optical_disc.UPDATE_TIME,
cs_optical_disc.CREAT_USER,
cs_optical_disc.UPDATE_USER,
cs_optical_disc.MIRROR_SLOTPATH,
cs_optical_disc.MIRROR_SLOTNAME
执行失败(语句1)
-2685: 第58 行附近出现错误:
试图在blob或者clob列上排序或比较
1条语句执行失败
你这个查询里,从 cs_optical_disc 表中取出的 前5个字段是不是表里的主键啊?如果是主键的话,也就意味着group by后的结果记录数等同于直接从disc表中查询的记录数。
目前分组只是为了取最大的 OTASK_ID 的话,是不是可以把MAX修改成标量子查询方式?这样就不需要对disc表里那些字段做分组了
sp_set_para_value(1,'ENABLE_BLOB_CMP_FLAG',1);
表示:是否支持大字段类型的比较。0表示不支持;1表示支持;
动态参数,修改后需要新建连接才生效
参考一下这个专栏信息:
https://eco.dameng.com/community/article/a4f1e2a63540cb0aa3f56981497968b3