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

Firebird EXECUTE BLOCK用LIKE查询报-811单行选择多行错误如何解决

问题原因

你遇到的报错核心由语法错误导致:

  • LIKE 后的匹配模式属于字符串字面量,必须用单引号包裹,你当前代码里的%test12%缺少单引号,触发SQL解析逻辑异常,无法正确识别FOR SELECT的游标查询逻辑,才会误报单行查询返回多行的-811错误。
  • 部分低于3.0的Firebird版本对BLOB SUB_TYPE TEXT类型字段直接使用LIKE匹配的支持不完善,若修复引号后仍有异常,可增加CAST转换适配。

修复后代码

EXECUTE BLOCK 
   RETURNS (ID Varchar(128), SCRIPT  BLOB SUB_TYPE TEXT)
AS
BEGIN
FOR SELECT Col1.EID, Col1.Script 
FROM Col1
WHERE Col1.Script Like '%test12%'
INTO :ID, :SCRIPT
  DO
   BEGIN
     SUSPEND;
   END
END

低版本兼容写法(替换WHERE条件即可):
WHERE CAST(Col1.Script AS VARCHAR(8191)) LIKE '%test12%'


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:54:02