【发布时间】:2021-04-08 09:45:06
【问题描述】:
PostgreSQL 支持 RETURNING 子句,例如
UPDATE some_table SET x = 'whatever' WHERE conditions RETURNING x, y, z
MSSQL 通过 OUTPUT 子句支持该语法的变体。
然而,Oracle“返回到”似乎打算在存储过程的上下文中将值放入变量中。
有没有一种方法可以在不涉及存储过程的情况下获得与上述 SQL 等效的 SQL 以在 Oracle 中运行?
注意:如果存在纯 SQL 解决方案,我正在寻找一种纯 SQL 解决方案,而不是一种特定于语言的解决方案,或者需要在代码中进行特殊处理。实际的 SQL 是动态的,调用的代码与数据库无关,只有 SQL 被调整。
【问题讨论】:
-
你当然可以使用它,告诉 oracle 将 x,y,z 返回到 :a,:b,:c 中。你用的是什么编程语言?
-
Oracle 中的普通 SQL 不支持此功能,仅当您使用 PL/SQL 时(例如在存储过程中)
-
您可以在JDBC中使用
RETURNING INTO子句,即不用PL/SQL。 -
@gsalem 这将需要使用返回参数,这使得它比常规游标/返回集更复杂,并且非常特定于 Oracle。实际的 SQL 是动态的,使用代码与数据库无关(只有 SQL 被调整以适应 DB,而不是代码)
标签: oracle sql-returning