如何将选择结果存储到Oracle过程中的变量中
我写了一个简单的程序。我尝试将选择结果存储在变量中。我使用“SELECT INTO”查询,但我不能这样做。
例子:
DECLARE
v_employeeRecord employee%ROWTYPE;
BEGIN
SELECT * INTO v_employeeRecord
FROM Employee WHERE Salary > 10;
END;
I write a simple procedure. I try to store selection result in variable. I use "SELECT INTO" query but I can not doing this.
Example:
DECLARE
v_employeeRecord employee%ROWTYPE;
BEGIN
SELECT * INTO v_employeeRecord
FROM Employee WHERE Salary > 10;
END;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你有几个选择。您可以将该查询转换为游标:
或者,您可以创建一个
TABLE
变量:我还没有在 Oracle 中尝试过这些示例,因此您可能会遇到编译器错误...
You have a couple options. You could turn that query into a cursor:
Or, you can create a
TABLE
variable:I haven't tried these samples in Oracle, so you may get compiler errors...
如果您的 SELECT 返回多于一行,您将无法使用 SELECT INTO 合成。
您需要构建一个循环来浏览结果集:
Adam 演示了如何使用显式游标和批量收集循环。我将展示如何构建最简单的循环(隐式游标,不需要 DECLARE 部分):
IF your SELECT returns more than one row, you won't be able to use the SELECT INTO synthax.
You will need to build a loop to navigate through the resulte set:
Adam demonstrated how you would use an explicit cursor and a bulk collect loop. I will show how you can build the simplest loop possible (implicit cursor, doesn't need a DECLARE section):