sunwalker_plus 2021-01-08 12:05 采纳率: 0%
浏览 191

在成功update一条数据后立即判断SQL%ROWCOUNT的值,为什么会等于0?

oracle版本:12.2.0.1.0

在环境中执行以下语句,表中只有一条内容为‘test’的数据,最后数据库中的结果为testplus--。

    ----------------hany test start  削除可

        update testhany set varchartype = 'testplus-'

        where varchartype = 'test';

          IF SQL%ROWCOUNT = 0 THEN

              update testhany set varchartype = 'testplus--'

            where varchartype = 'testplus-';

          END IF;

   ------------------hany test end  

在我的理解中,如果第一条更新语句成功执行的话,SQL%ROWCOUNT应该为1才对,无论如何都不可能进入第二条更新语句。

但是实际的结果是数据变成了'testplus--'。

如果有大神看出哪里可能出了问题,望不吝赐教。

 

  • 写回答

5条回答 默认 最新

  • QxAIRobot 2021-01-08 12:56
    关注

    在我的记忆中,sql是有缓存机制的,要不你试试加个commit同步一下数据?

    太久没碰sql了,发表一点拙见,仅供参考。

     

    评论

报告相同问题?

悬赏问题

  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序