如何識別 For / Select / Loop 中的行號 (How do I identify the row number in a For / Select / Loop)


問題描述

如何識別 For / Select / Loop 中的行號 (How do I identify the row number in a For / Select / Loop)

我有一段來自 Oracle 過程的代碼。這部分工作正常:

for r in (select * from json_table
            (l_resp, '$.items[0].volumeInfo.authors[*]' 
                columns author varchar2(256) path '$'
            )
          ) 
    loop  
        dbms_output.put_line('The value of Author ' ||  ' is: ' || r.author);  
    end loop r; 

我想做的是獲取當前正在處理的行號。類似於“r”行的 ROWNUM。 我想將 dbms_output 行調整為如下所示:

dbms_output.put_line('The value of Author ' || r.rownum || ' is: ' || r.author);

但是 r.rownum 不起作用。如何引用“r.rownum”之類的內容?


參考解法

方法 1:

I found a way.

For rowz in 
    (select rownum rn, j_auth_tab.*
        from json_table(l_resp, '$.items[0].volumeInfo.authors[*]' 
                        columns author varchar2(512) path '$') j_auth_tab) 
Loop
    dbms_output.put_line('Rownum: ' || rowz.rn || ' Author: ' || rowz.author);
End loop rowz;

That solved my problem.

(by user3138025user3138025)

參考文件

  1. How do I identify the row number in a For / Select / Loop (CC BY‑SA 2.5/3.0/4.0)

#for-loop #JSON #select #oracle






相關問題

從R中的類引用列表中獲取類引用字段的最小值 (Get min value of a class reference field from a list of class references in R)

在 SQL Server 2008 中運行 WHILE 或 CURSOR 或兩者 (Running WHILE or CURSOR or both in SQL Server 2008)

danh sách trong python, vòng lặp for, mảng (list in python, loop for, array)

如何編寫一個程序來自動執行一組查詢 (How to write a procedure to execute set of queries automatically)

xPath 在使用 for-each 循環變量時找不到選擇器,但可以正常工作 (xPath not finding selector when using for-each loop variable, but works otherwise)

為什麼for循環重複輸出相同的記錄?JavaScript (Why for loop output same record repeatedly? JavaScript)

在 for 循環中將參數傳遞給 setTimeout (Passing argument to setTimeout in a for loop)

使用python匹配條件後如何從列表的開始迭代開始for循環 (How to start for-loop from the starting iteration of list after matching the condition using python)

BASH:在 for 循環中使用 continue (BASH: Using a continue in a for loop)

如何識別 For / Select / Loop 中的行號 (How do I identify the row number in a For / Select / Loop)

如何循環遍歷列表中的項目不斷附加在循環中的列表? (how to loop through a list where the items of the list are constantly appended in the loop?)

是否可以僅使用 for 循環來實現包含 for 循環的遞歸函數,該循環包含對上述函數的調用? (Can a recursive function containing a for loop that contains a call of the mentioned function be implemented using only for loops?)







留言討論