2016-04-14 37 views
0

因此,問題在標題中。我有一個生成我的變量的select語句。這可以正常工作,因爲我已經以我想到的方式進行了測試。我也有一個HTML電子郵件正文。但是,當我試圖在HTML主體中顯示我的變量時,翻譯中的東西就會丟失。所有表格單元格顯示爲& v_pidm,& v_name等。如何使用SQL變量在APEX 5.0中填充HTML表格行

以下是聲明語句:

declare 
    subj varchar2(255) := 'Course Withdrawal Request - Complete'; 
    to_ varchar2(255) := '[email protected]'; 
    cc_ varchar2(255):= '[email protected]'; 
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> 

當這產生的結果,它它,錶行簡單地寫着:

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

完全一樣,沒有實際的變量。

如果有更多的信息可以派上用場,請告訴我,我會盡我所能。 PHP不是一種選擇,除非它是唯一的選擇。

謝謝!

+0

你在哪裏使用你的例子中的HTML?在'APEX_MAIL'程序的'p_body_html'中? –

+0

我們在PL/SQL函數中使用它 – ADKCourage

回答

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; 
+0

絕對完美!非常感謝! – ADKCourage

+0

我不太確定你想要達到的目標,但是如果你可以嘗試使用交互式報告或經典報告等合併的頂點功能,因爲它們帶來更多的性能和安全性。祝你好運。 –

+0

我很想去,但不幸的是,我們在這裏沒有APEX培訓,所以我們只能自己學習。由於數據庫管理員限制了我們訪問的內容,因此做實驗室練習不是一種選擇。不過,我一定會繼續學習。 – ADKCourage