【问题标题】:How do I identify the row number in a For / Select / Loop如何识别 For / Select / Loop 中的行号
【发布时间】:2020-02-13 15:50:30
【问题描述】:

我有一段来自 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”之类的内容?

【问题讨论】:

    标签: json oracle for-loop select


    【解决方案1】:

    我找到了办法。

    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;
    

    这解决了我的问题。

    【讨论】:

      猜你喜欢
      • 2022-08-16
      • 2018-03-27
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 2015-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多