首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DB2运行时错误

DB2运行时错误
EN

Stack Overflow用户
提问于 2009-09-14 16:01:24
回答 1查看 5.9K关注 0票数 0
代码语言:javascript
运行
复制
UPDATE
      S
SET

    (S.a,
    S.b,
    S.c)
=
(

SELECT 
    FS.a,
    FS.b,
    FS.c
FROM

(SELECT 
    T.a,            
    T.b,                
    T.c,                    
    T.d,            
    T.e,                
    CASE 
        WHEN IS.a IS NULL THEN 'N'
        ELSE 'Y'
    END 

FROM 
    t       T
        JOIN
           y
          ON(y.a = T.a)




) FS


WHERE
    FS.a    = S.e
    AND FS.b    = S.a
    AND FS.c    = S.b
    AND FS.d    = S.c
)

当我执行这个查询时,我得到了一个错误:

代码语言:javascript
运行
复制
 21:23:59  [UPDATE - 0 row(s), 0.000 secs]  [Error Code: -811, SQL State: 21000]  DB2 SQL Error: SQLCODE=-811, SQLSTATE=21000, SQLERRMC=null, DRIVER=3.50.152
... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.000/0.000 sec  [0 successful, 0 warnings, 1 errors]

你能解释一下根本原因吗.?

EN

回答 1

Stack Overflow用户

发布于 2009-09-14 21:35:04

所有DB2消息及其含义都可以在网上找到。

在您的情况下,根据SQL0811N的书面记录

以下原因之一导致了错误:

  • 执行嵌入的SELECT INTO或VALUES语句会导致结果表多于一行。
  • 执行标量完全选择会产生多行的结果表。

这意味着启动的select语句:

代码语言:javascript
运行
复制
SELECT 
FS.a,
FS.b,
FS.c
FROM ...

返回多行。这是不允许的,因为您试图在update语句中设置单个行的值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1422478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档