gpt4 book ai didi

oracle - 存储过程: Cursor is bad?

转载 作者:行者123 更新时间:2023-12-02 11:33:15 24 4
gpt4 key购买 nike

我在某处读到,99% 的时间你不需要使用光标。

但是在下面这种情况下,除了使用光标之外,我想不出任何其他方法。

Select t.flag
From Dual t;

假设这返回 4 行 'Y''N'。我希望该过程在找到 'Y' 时触发某些内容。我通常声明一个游标并循环直到 %NOTFOUND。请告诉我是否有更好的方法。

此外,如果您有任何想法,什么时候是使用光标的最佳时间?

编辑:如果我不想插入标志,而是想做“如果 'Y' 则触发某些内容”,该怎么办? p>

最佳答案

你的情况绝对属于99%。

您可以使用 insert into ... select... 轻松执行条件插入。这只是一个 select 返回您想要插入的结果的问题。

如果您想为每个 'Y' 插入一条记录,请使用带有 where flag = 'Y' 的查询。如果您只想根据是否至少有一个 'Y' 插入一条记录,那么您可以将 distinct 添加到查询中。

当您使事情变得更复杂时,光标非常有用。例如,当需要在一个表中插入或更新记录,以及为每条记录插入或更新一条或多条记录到其他几个表中时,我会使用游标。

关于oracle - 存储过程: Cursor is bad?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10905408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com