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

时间:2016-04-14 13:36:17

标签: html sql oracle-apex

所以,问题出在标题中。我有一个产生我的变量的select语句。这很好,因为我已经用我能想到的一切可能的方式测试了它。我也有一个有效的HTML电子邮件正文。但是,当我尝试在HTML正文中显示我的变量时,翻译中的内容会丢失。所有表格单元格显示都是& 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>

当这产生结果时,表行只是读取:

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

完全没有实际变量。

如果有更多信息可以派上用场,请告诉我,我会尽我所能。 PHP不是一个选项,除非它是唯一的选择。

谢谢!

1 个答案:

答案 0 :(得分:1)

您已将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;