如何使用 SQL 变量填充 APEX 5.0 中的 HTML Table 行

How do I use SQL variables to populate an HTML Table Row in APEX 5.0

所以,问题在标题中。我有一个 select 语句来生成我的变量。这很好用,因为我已经以我能想到的任何可能的方式对其进行了测试。我还有一封有效的 html 电子邮件 body。但是,当我尝试在 HTML body 中显示我的变量时,翻译过程中就会出现问题。所有 table 单元格显示为 &v_pidm、&v_name 等等。

声明语句如下:

declare
  subj varchar2(255) := 'Course Withdrawal Request - Complete';
  to_ varchar2(255) := 'someone@somewhere.edu'; 
  cc_ varchar2(255):= 'someone@somewhere.edu';
 from_ varchar2(255) := V('APP_USER')||'@somewhere.edu';
 body varchar2(32767);
 style varchar2(500);
 v_pidm number;
 v_name varchar(255) := 'stu_name';
 v_subj varchar(255); 
 v_crse varchar(255); 
 v_crn varchar(255); 
 v_title varchar(255); 
 v_term varchar(255); 
 v_status varchar(255);  
 v_comment  varchar(255);

begin

这里是 select 语句:

Select distinct(ZSARWST_PIDM)
       ,spriden_first_name||' '||spriden_last_name stu_name
      , zsrrwct_subj
      , zsrrwct_crse
      , zsrrwct_crn
      , nvl(ssbsect_crse_title,scbcrse_title) title
      , zsrrwct_term
      , zsrrwct_crse_stat_ind
      , zsrrwct_comment
into v_pidm, v_name, v_subj, v_crse, v_crn, v_title, v_term, v_status, v_comment        
from ZRESWITHDRAW.zsrrwct

join zreswithdraw.zsarwst on zsarwst_id = zsrrwct_rwst_id 
join spriden on spriden_pidm = ZSARWST_PIDM           
join ssbsect on ssbsect_term_code = zsrrwct_term
            and ssbsect_crn = zsrrwct_crn
            --and ssbsect_ptrm_code = sobptrm_ptrm_code
            and ssbsect_subj_code = zsrrwct_subj
            and ssbsect_crse_numb = zsrrwct_crse
left join scbcrse on scbcrse_subj_code||scbcrse_crse_numb = ssbsect_subj_code||ssbsect_crse_numb
                 and scbcrse_eff_term = (select max(j.scbcrse_eff_term)
                                               from scbcrse j
                                              where j.scbcrse_subj_code||j.scbcrse_crse_numb = scbcrse.scbcrse_subj_code||scbcrse.scbcrse_crse_numb
                                                and j.scbcrse_eff_term <= zsrrwct_term)

where spriden_change_ind is null
  and zsrrwct_rwst_id = :P5_zsarwst_id;

我无法分享所有 HTML,因为其中一些是特定于品牌的,但这里是 html,它是针对我正在尝试做的事情的:

<style>
.demo {
 border:1px solid #C0C0C0;
 border-collapse:collapse;
 padding:10px;
}
.demo th {
 border:1px solid #C0C0C0;
 padding:10px;
 background:#F0F0F0;
}
.demo td {
 border:1px solid #C0C0C0;
 padding:10px;
}
</style>
<table class="demo" align="center">
 <tbody>
  <tr>
   &v_pidm, &v_name, &v_subj, v_crse, v_crn, v_title, v_term, v_status, v_comment 
  </tr>

 </tbody>
</table>

当它产生结果时,table 行简单地显示为:

&v_pidm, &v_name, &v_subj, v_crse, v_crn, v_title, v_term, v_status, v_comment

完全一样,没有实际变量。

如果有更多有用的信息,请告诉我,我会尽力提供。 PHP 不是一个选项,除非它是唯一的选项。

谢谢!

您已将 HTML 字符串与 select 中的变量连接起来。像这样:

    declare

    some_variable varchar2(2000);
    html varchar2(4000);

    begin

    select 'something' into some_variable from dual;

    html:='<table class="demo" align="center">
            <tbody>
               <tr>
                  '||some_variable||'
               </tr>
            </tbody>
          </table>';

    end;