首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么在update语句后使用RETURNING子句时会收到“找不到数据”异常?

在update语句后使用RETURNING子句时收到“找不到数据”异常的原因可能有以下几种:

  1. 更新的数据行不存在:当执行update语句时,如果指定的条件不满足,或者更新的数据行不存在,那么在使用RETURNING子句时就会收到“找不到数据”异常。这可能是由于条件错误或者数据行已被其他操作删除导致的。
  2. RETURNING子句的字段与更新语句的字段不匹配:RETURNING子句用于返回更新后的数据行,如果RETURNING子句中指定的字段与更新语句中的字段不匹配,就会导致“找不到数据”异常。确保RETURNING子句中的字段与更新语句中的字段一致。
  3. 数据库不支持RETURNING子句:不同的数据库管理系统对SQL语法的支持程度不同,有些数据库可能不支持RETURNING子句,或者使用不同的语法来实现相同的功能。在这种情况下,使用RETURNING子句会导致“找不到数据”异常。

需要注意的是,以上是一般情况下可能导致“找不到数据”异常的原因,具体原因还需要根据具体的数据库管理系统和SQL语句来分析。对于具体的数据库管理系统和SQL语句,可以参考相应的文档或者咨询相关的技术支持人员来获取更准确的解答。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PLSQL --> 动态SQL的常见错误

RETURNING子句返回更新的结果 EXECUTE IMMEDIATE sql_stmt --执行动态SQL块 USING v_empno RETURNING INTO v_new_sal;...,使用了绑定变量:dno,执行的时候收到了错误信息。...USING传递参数到动态SQL或使用INTO子句传递结果集到变量应注意按正确的顺序排列处理 下面的示例中由于v_ename与v_sal为不同的数据类型,使用INTO时不小心将顺序颠倒,导致错误产生。...下面的示例中,使用了日期型变量,未使用引号标注,且使用了变量绑定,但直接输入日期型数据,而不加引号,则收到错误提示。...('The employee name is ' || v_ename); END; 处理办法 去掉动态SQL语句中的RETURNING coloumn_name INTO子句执行EXECUTE

2.2K20
  • Oracle 23c 中 RETURNING INTO 子句

    执行INSERT、UPDATE 和 DELETE 语句时,现在我们可以通过RETURNING INTO 子句返回受影响数据的新值或者旧值。... Oracle 23c中,INSERT、UPDATE 和 DELETE 语句RETURNING INTO 子句得到了增强,可以返回受相应语句影响的旧值和新值。...这允许开发人员对每个 DML 类型使用相同的逻辑来获取语句执行前和执行的值。旧值和新值仅对 UPDATE 语句有效。INSERT 语句不返回旧值,DELETE 语句不返回新值。...当对单行进行操作时,带有returning_clause 的DML 语句可以使用受影响的行、rowid 和受影响行的REF 来检索列值,并将它们存储主变量或PL/SQL 变量中。... UPDATE使用 RETURNING 子句示例: 以下示例从更新的行返回值并将结果存储 PL/SQL 变量 bnd1、bnd2、bnd3 中: UPDATE employees SET

    34820

    Oracle 动态SQL「建议收藏」

    using &1,&2; end; 3)、处理包含returning子句的DML语句 说明:使用execute immediate处理带有returning子句的DML语句时,只能处理作用在单行上的...SQL中使用bulk子句 1、概述 动态SQL中使用BULK子句为9i新增特征,BULK子句实际是动态SQL语句将变量绑定为集合元素, 集合类型可以是PL/SQL所支持的索引表、嵌套表和VARRAY...2、execute immediate语句使用bulk子句 1)、概述 通过execute immediate语句使用bulk子句可以处理作用在多行上的动态DML返回子句,和多行查询语句...1)、概述 原来的open-for,fetch,close语句处理动态多行查询语句时,默认每次提取单行数据,循环提取。 通过fetch语句中引入bulk子句,可以一次提取所有数据。...1)、概述 使用forall语句,可允许动态SQL语句中为输入变量同时提供多个数据, 但forall语句只适用于动态的insert\update\delete语句, 不适用于动态select

    1.5K10

    SqlAlchemy 2.0 中文文档(三)

    /data_update.html 到目前为止,我们已经覆盖了 Insert,这样我们可以将一些数据放入我们的数据库中,并且花了很多时间 Select 上,该语句处理了从数据库检索数据使用的各种广泛的使用模式...、DELETE 中获取受影响的行数 `Update` 和 `Delete` 都支持语句执行返回匹配行数的功能,对于使用 Core `Connection` 调用的语句,即 `Connection.execute...使用 UPDATE、DELETE 与 RETURNING 与 Insert 构造类似,Update 和 Delete 也支持 RETURNING 子句,通过使用 Update.returning() 和...、DELETE 获取受影响的行数 Update 和 Delete 都支持语句执行返回匹配的行数的功能,对于使用 Core Connection 调用的语句,即 Connection.execute(...这个选项有时会因为性能原因或者关闭Session希望使用对象(即分离状态)而带来问题,因为它们将不再具有任何状态,并且没有Session来加载该状态,导致“分离实例”错误。

    32720

    【DB笔试面试465】如何使用批量动态SQL(FORALL及BULK子句使用)?

    答案部分 批量动态SQL即在动态SQL中使用BULK子句,或使用游标变量时FETCH中使用BULK,或在FORALL子句使用BULK子句来实现。...如果一个循环内执行了INSERT、DELETE或UPDATE语句引用了集合元素,那么可以将其移动到一个FORALL子句中。...当使用BULK子句时,集合类型可以是PL/SQL所支持的索引表、嵌套表和VARRY,但集合元素必须使用SQL数据类型。...2、使用EXECUTE IMMEDIATE结合BULK子句处理DML语句返回子句 下面的例子,首先定义了两个索引表类型以及其变量,接下来使用动态SQL语句来更新T_20170104_LHR的薪水,使用EXECUTE...输入变量,但FORALL子句仅支持DML(INSERT、DELETE、UPDATE语句,不支持动态的SELECT语句

    1.9K30

    SqlAlchemy 2.0 中文文档(四十七)

    出现此错误的两种情况如下: 会话刷新操作中,如果两个对象相互依赖,它们不能仅通过 INSERT 或 DELETE 语句进行插入或删除;需要使用 UPDATE关联或先取消关联其中一个外键约束值。...method pre_exec() 在编译语句执行前调用。 如果已编译的语句被传递给此 ExecutionContext,则在此语句完成必须初始化语句和参数数据成员。...method pre_exec() → None 在编译语句执行之前调用。 如果已将编译的语句传递给此执行上下文,则在此语句完成,必须初始化语句和参数数据成员。...attribute render_table_with_column_in_update_from: bool = False 设置为 True 可以类别地表示多表 UPDATE 语句中的 SET 子句应该使用表名限定列...from_table, extra_froms, **kw) 提供一个钩子来覆盖 UPDATE 语句中的初始表子句

    28510

    SqlAlchemy 2.0 中文文档(五十八)

    参考:#10414 sql [sql] [bug] 修复了 UPDATE 语句的 SET 子句中引用 FROM 条目时,如果该条目语句中没有其他地方出现,则不会将其包含在 UPDATE 语句的...还调整了 UPDATE FROM 和 DELETE FROM 语句使用RETURNING 策略。...”支持,涵盖了两种个别功能: 实现了多行 RETURNING,意味着对于产生多于一个 RETURNING 行的 DML 语句,现在将收到多个 RETURNING 行。...此行为已修复,此时会对接收到的对象进行哈希性测试,如果不可哈希,则会引发一个信息性错误消息。...参考:#10414 SQL [SQL] [错误] 修复了 UPDATE 语句的 SET 子句中引用 FROM 条目不会将其包括 UPDATE 语句的 FROM 子句中的问题,如果该条目语句中没有其他地方出现

    10410

    select from update row的实现

    DTCC大会上,阿里江疑的演讲中提到一个:select from update hot row; 不明白如何在Oracle中实现的,他的意思是一条SQL中实现update和select这条update...经dbsnake指点,了解到这是模仿了Oracle的returning into子句,可以将使用的DML语句影响的行记录的指定列的值select出来。...插入一条记录,使用returning into同一条SQL中获得插入的id值: SQL> declare 2 l_id tbl_returninto.id%type; 3 begin...更新和删除一条记录,使用returning into获得更新和删除的id值: SQL> declare l_id tbl_returninto.id%type; 2 begin 3 update...总结: 使用returning into子句可以一条SQL中将insert、update和delete影响的行记录指定字段信息select出来,其中insert和update都是执行之后的结果,delete

    1.5K20

    批量SQL之 BULK COLLECT 子句

    通常可以SELECT INTO、 FETCH INTO以及RETURNING INTO子句使用BULK COLLECT。本文将逐一描述BULK COLLECT在这几种情形下的用法。    ...二、使用LIMIT限制FETCH数据量     使用BULK COLLECT 子句时,对于集合类型,如嵌套表,联合数组等会自动对其进行初始化以及扩展(如下示例)。...子句的批量绑定     BULK COLLECT除了与SELECT,FETCH进行批量绑定之外,还可以与INSERT,DELETE,UPDATE语句结合使用。...当与这几个DML语句结合时,我们 需要使用RETURNING子句来实现批量绑定。...4、复合目标(如对象类型)不能在RETURNING INTO 子句使用。 5、如果有多个隐式的数据类型转换的情况存在,多重复合目标就不能在BULK COLLECT INTO 子句使用

    71230

    SqlAlchemy 2.0 中文文档(十七)

    “子”表的参数集相关联,这就是为什么上面示例中的 SQLite 后端会透明地降级到使用非批量语句。...这种用法不应与 ORM 中更常见的使用 Update 语句的方式混淆,该方式使用显式的 WHERE 子句 ORM UPDATE and DELETE with Custom WHERE Criteria...“子”表中的参数集,这就是为什么上面示例中的 SQLite 后端会透明地降级到使用非批处理语句的原因。...“子”表的参数集相关联,这就是为什么上面的 SQLite 后端透明地降级为使用非批处理语句的原因。...这种用法不应与更常见的使用 Update 语句与 ORM 一起使用的方式混淆,使用显式的 WHERE 子句,该方式 ORM 更新和删除自定义 WHERE 条件 中有记录。

    34610

    SqlAlchemy 2.0 中文文档(十三)

    id [...] (' (audited)', 1) 上述语句自动使用UPDATE…FROM”语法,由 SQLite 和其他后端支持, WHERE 子句中命名附加的audit_transaction...,对基础集合的更改直到数据刷新才可见。...id [...] (' (audited)', 1) 上述语句自动使用了“UPDATE…FROM”语法,该语法由 SQLite 和其他数据库支持,以 WHERE 子句中命名额外的audit_transaction...id [...] (' (audited)', 1) 上面的语句自动使用了“UPDATE…FROM”语法,由 SQLite 和其他后端支持, WHERE 子句中命名附加的audit_transaction...id [...] (' (audited)', 1) 上述语句自动使用UPDATE…FROM”语法, SQLite 和其他支持的数据库中, WHERE 子句中命名附加的audit_transaction

    14810

    PostgreSQL逻辑优化——整体架构

    小编说:PostgreSQL作为一个优秀的数据库产品,其本身有着非常多值得学习和研究的地方。...完成对tuple_faction的设置,进入后续优化流程,subquery_planner的函数原型如下所示。 ? 这里也许读者会迷惑,为什么是subquery_planner呢?...从名字上看该函数像是用来处理子查询,那么为什么用来作为整个查询语句优化的入口呢(Primary Entry Point)?...子查询语句作为查询语句的一部分,很大程度上与父查询具有相似的结构,同时两者处理方式和方法上也存在着一定的相似性:子查询的处理流程可以在对其父查询的过程中使用。...我们将查询优化的主要步骤总结如下: 处理CTE表达式,ss_process_ctes; 上提子链接,pull_up_sublinks; FROM子句中的内联函数,集合操作,RETURN及函数处理,inline_set_returning

    1.5K20

    SQL优化(五) PostgreSQL (递归)CTE 通用表表达式

    WITH中使用数据修改语句 文章开头处提到,WITH中可以不仅可以使用SELECT语句,同时还能使用DELETE,UPDATE,INSERT语句。...子句将删除的数据集赋给moved_rows这一CTE,最后语句中通过INSERT将删除的商品插入products_log中。...如果WITH里面使用的不是SELECT语句,并且没有通过RETURNING子句返回结果集,则主查询中不可以引用该CTE,但主查询和WITH语句仍然可以继续执行。...而WITH中的SELECT语句则只输出主语句中所需要记录数。 WITH中使用多个子句时,这些子句和主语句会并行执行,所以当存在多个修改子语句修改相同的记录时,它们的结果不可预测。...所有的子句所能“看”到的数据集是一样的,所以它们看不到其它语句对目标数据集的影响。这也缓解了多子句执行顺序的不可预测性造成的影响。

    2.6K60

    openGauss的BatchStore和Batchsortstate为什么仅ForwardScanDirection取数据

    openGauss - 内核原理 - BatchStore和Batchsortstate为什么仅ForwardScanDirection取数据 openGauss的普通执行引起从Tuplestorestate...Portal作为输出数据,存放了与执行该SQL语句相关的所有信息,包括查询树、计划树、执行状态等。...其中PORTAL_UTIL_SELECT策略:节点是CMD_UTILITY类型操作,utilityStmt字段保持的是FETCH语句(游标使用)、EXECUTE语句、EXPLAIN语句或者SHOW;PORTAL_ONE_RETURNING...:适用于stmts链表中只有一个包含RETURNING子句的原子操作;PORTAL_ONE_MOD_WITH:包含一个SELECT查询,有一个data-modifying CTEs;其他场景使用PORTAL_MULTI_QUERY...各个算子的清理函数命名规则“ExecEnd+算子名”或“ExecEndVec+算子名” 3、向量化执行引擎的执行 排序Batchsortstate或者物化BatchStore进行取数据时,比如排序从排序缓存取数据

    9310
    领券