我必须在SQLPLUS的循环中运行查询。并且循环的计数来自其他一些SQL查询。所以我必须声明一个变量,它会取数值。现在我想在我的查询中使用这个变量。我将如何能够做到这一点。请建议我提前在SQL Plus中运行查询
2
A
回答
0
BEGIN
DECLARE
count_loop NUMBER DEFAULT 0; -- counter coming from some other SQL query...
progressive_number NUMBER DEFAULT 0;
copy_count_loop NUMBER DEFAULT 0;
BEGIN
-- calculus generating the COUNT_LOOP value > 0.
copy_count_loop := count_loop;
FOR progressive_number IN 1 .. count_loop
LOOP
-- do your operations using copy_count_loop
END LOOP;
END;
END;
/
由于它不是那么清楚你到底想用COUNT_LOOP做。 在进入FOR循环之前,我已经制作了计数器的副本,因此您可以在FOR循环中使用COPY_COUNT_LOOP,而不影响progressive_number变量和count_loop变量。
2
如果我理解正确的问题,你可以使用一个SQL * Plus可变再加上选择的列来实现:
SQL> undefine loop_ctr
SQL> column loop_ctr new_value loop_ctr noprint
SQL> select 5 AS loop_ctr from dual;
SQL> set serveroutput on
SQL> begin
2 for i in 1..&&loop_ctr
3 loop
4 dbms_output.put_line('i = ' || i);
5 end loop;
6 end;
7/
old 2: for i in 1..&&loop_ctr
new 2: for i in 1.. 5
i = 1
i = 2
i = 3
i = 4
i = 5
SQL>
希望帮助
相关问题
- 1. 查询不是在运行SQL * Plus的
- 2. SQL plus运行多个查询
- 3. 如何在SQL * Plus中使用begin/end运行Oracle查询?
- 4. SQL Plus查询 - 多表查询
- 5. SQL * Plus本身允许查询从shell本身运行吗?
- 6. SQL Plus - 根据用户输入运行查询
- 7. 运行SQL查询
- 8. 运行SQL查询
- 9. SQL * PLUS中的查询问题
- 10. SQL * PLUS子查询需要检查
- 11. 在Application Express上运行Sql * Plus命令
- 12. 运行SQL查询检查
- 13. 目前在SQL Server中运行查询
- 14. 在循环中运行sql select查询
- 15. 宏在Excel中运行SQL查询
- 16. 在VB.NET中没有运行SQL查询
- 17. 在Ruby中运行任意SQL查询
- 18. 在PHP文件中运行SQL查询
- 19. 在asp.net c中运行sql子查询#
- 20. 在excel中运行oracle sql查询?
- 21. 错误在PHP中运行SQL查询
- 22. 优化SQL查询运行
- 23. sql查询未运行
- 24. SQL查询不运行
- 25. ClickOnce运行SQL Server查询
- 26. 多次运行SQL查询
- 27. 从VBA运行SQL查询
- 28. 超时运行SQL查询
- 29. 运行SQL查询更快
- 30. SQL查询运行超慢