首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用select 1 from dual找到异常no-data

使用select 1 from dual找到异常no-data
EN

Stack Overflow用户
提问于 2011-10-12 19:11:33
回答 1查看 1.1K关注 0票数 1

当l_num等于2并且满足特定条件时,我正在尝试更新表。该条件实际上没有定义的id的单个记录。

为此,我使用了select 1 from dual。问题是l-test总是返回0(这意味着没有找到数据)。

任何帮助都是受欢迎的。

代码如下:

代码语言:javascript
复制
CASE l_num
    WHEN 2
    THEN
       BEGIN
          SELECT 1
            INTO l_test
            FROM DUAL
           WHERE NOT EXISTS (
                    SELECT 1
                      FROM table t1, table t2
                     WHERE t1.id = l_id
                       AND t1.status = 'D'
                       AND t1.code = t2.code);
       EXCEPTION
          WHEN NO_DATA_FOUND
          THEN
             l_test := 0;
       END;
                                                                                           DBMS_OUTPUT.put_line ('  l_test when pr l_num =2 :' || l_test);
       IF l_test = 1
       THEN
          UPDATE ....

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-10-13 15:04:56

你就不能数一下表中的匹配数吗?

(另外,您应该真正开始使用ANSI SQL语法,而不是旧的SQL-86)

代码语言:javascript
复制
      SELECT count(1)
        INTO l_test
        FROM table t1
       INNER JOIN table t2 USING (code)
       WHERE t1.id = l_id
         AND t1.status = 'D';

如果计数为零,则没有匹配的ID;如果计数大于零,则存在匹配。

这也简化了您的代码,因为您不必检查NO_DATA_FOUND,因为count总是返回一个值(0或更多)。

希望这能帮上忙。

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

https://stackoverflow.com/questions/7739151

复制
相关文章

相似问题

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