我必須在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查詢運行超慢