【发布时间】:2018-11-03 22:48:54
【问题描述】:
我想在 UPDATE 语句中循环。有可能这样做吗?它在“rec”变量中给了我一个错误。如果不能,你能告诉我我该怎么做。这是我的代码,我尝试执行 SELECT 以使用所有变量更新所有行。
BEGIN
UPDATE DATMCCN0
SET E_NOME = (
FOR rec IN(SELECT IID FROM DATMCCN0)
LOOP
SELECT I_NOME FROM DAT_CCNCONFIG0 INNER
JOIN DATMCCN0 ON DAT_CCNCONFIG0.I_NOME = DATMCCN0.CAPLIC
where DATMCCN0.IID = rec.IID)
END LOOP;
END;
【问题讨论】:
-
你不要在里面循环。根本不需要循环来更新行。但是,如果必须,您可以在循环内循环和更新。例如,开始...循环...更新...结束循环;在此处查看 Update... SELECT.. 的示例:techonthenet.com/oracle/update.php 另请阅读 Oracle 文档。此处和网络上有大量示例可用于通过 select 或 update inside loop 进行更新。
-
你们都不明白我的问题
-
可能会显示输入数据的示例,以及您希望从此更新中获得的结果示例。目前尚不清楚您到底想得到什么,您在问题中显示的陈述完全是错误的,无法编译。很难猜测看到错误的代码而不是正常工作的代码应该做什么。
-
@jose 而不是做出诸如“你们都不理解我的问题”之类的非建设性陈述,也许最好改进您的问题以帮助我们(他们不了解您的问题)通过提供minimal reproducible example 来理解您想要实现的目标的英文描述(不是代码)、一些示例数据(如 DDL/DML 语句)和您的预期结果。我们是志愿者,粗鲁无礼不利于让我们自愿抽出时间来帮助您而不是其他人。