如何使用 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;
所以,问题在标题中。我有一个 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;