You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为DenodoODBC的PDO对象设置session变量group_concat_max_len?

解决Denodo ODBC连接下GROUP_CONCAT结果截断及参数设置报错问题

问题原因

你用的是Denodo的ODBC驱动,它的SQL语法和MySQL不同,不支持SET SESSION这种MySQL风格的会话参数设置语句,所以触发语法错误。

正确的参数设置方法

Denodo中设置会话级的group_concat_max_len需要用SET VARIABLE语法,不需要加SESSION关键字:

$db = new PDO('odbc:DenodoODBC');

// 正确设置会话级group_concat_max_len
$db->exec("SET VARIABLE group_concat_max_len = 4096;");

验证参数是否生效

设置完成后,可通过以下查询确认参数值:

SELECT GET_VARIABLE('group_concat_max_len');

补充说明

  • 若要全局生效,需在Denodo的VDP Administration Tool中调整:进入Server Configuration > Advanced,找到group_concat_max_len参数修改数值后重启服务。
  • 数值可根据实际需求调整,比如需要更长拼接结果时,可设为102400(100KB)或更大值。

原报错信息:
Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 7 ERROR: Syntax error: Exception parsing query near 'SESSION' java.sql.SQLException: Syntax error: Exception parsing query near 'SESSION'; Error while executing the query (SQLExecDirect[7] at ext\pdo_odbc\odbc_driver.c:241) in *.php:7 Stack trace: #0 *.php(7): PDO->exec('SET SESSION gro...') #1 {main} thrown in *.php on line 7

内容的提问来源于stack exchange,提问作者LucBed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 08:50:02