【问题标题】:selecting two different table row data into a row in for loop using pl/sql使用pl/sql在for循环中选择两个不同的表行数据到一行中
【发布时间】:2014-01-15 07:57:27
【问题描述】:

我在 oracle apex 中有一个区域,数据从 pl/sql 获取到该区域。

以下是pl/sql源码:

begin    
    for drow in ( select * from books where book_id = :P13_BooK_ID ) loop
        htp.prn('<table border=0>
              <tbody>
                <tr>
                  <td valign=top>
                      <table border=0>
              <tbody>
                                     <tr>
                  <td >Reporting Period</td>    
                  <td >' || to_char(drow.REPORTING_PERIOD, 'MM-DD-YYYY') || '</td>
                </tr>   
                 <tr>
                  <td >L Key</td>    
                  <td >' || drow.L_KEY || '</td>
                </tr>
                <tr>
                  <td >Name</td>
                  <td >' || drow.BooK_NAME || '</td>
                </tr>                   
                <tr>
                  <td >C Type</td>
                  <td >' || drow.C_TYPE || '</td>
                </tr>                   
                <tr>
                  <td >E Count</td>
                  <td >' || drow.E_COUNT || '</td>
                </tr>
              </tbody>
            </table>');    
    end loop;
end;
/

现在我想在这个区域中添加另外两个细节(校长、导演),它们位于另一个名为 school 的表中,我在这两个表 book 中有一个公共列,school as books.l_key = school.k_key。

如何在上述区域中添加这两个详细信息,并且两个表中都有许多常见的列名,所以当我尝试时:

for drow in ( select * from books b, school s where book_id = :P13_BooK_ID and books.l_key =school.k_key) loop

显示错误

ORA-06550:第 4 行,第 2 列:PLS-00402:SELECT 列表中需要别名 游标以避免重复的列名 ORA-06550:第 4 行,第 2 列: PL/SQL:语句被忽略

谁能告诉我如何将这两个细节添加到该地区。谢谢

【问题讨论】:

    标签: sql plsql oracle-apex


    【解决方案1】:

    正如错误所说,您需要指定要在光标中包含哪些列并为其指定不同的别名。例如,如果您在两个表中都有列 ID,为了避免不确定的行为,您需要像这样指定游标:

    for drow in ( select b.id books_id, s.id school_id from books b, school s where b.book_id = :P13_BooK_ID and books.l_key =school.k_key) loop
    

    并相应地访问它们,即 drow.books_id 或 drow.school_id。

    【讨论】:

      猜你喜欢
      • 2019-04-06
      • 1970-01-01
      • 2016-01-15
      • 2013-07-21
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多