Oracle apex APEX:mysql中的blob数据来自查询并作为CSV输出
早上好,伙计们,这件事真的需要你们的帮助。 我有一个表中的查询,我需要使用oracle apex将其作为CSV附件发送到电子邮件中。这就是所有这些的目标——乐于探索不同的选项/sql以获得相同的结果(通过oracle apex) 示例查询:Oracle apex APEX:mysql中的blob数据来自查询并作为CSV输出,oracle-apex,apex,apex-code,Oracle Apex,Apex,Apex Code,早上好,伙计们,这件事真的需要你们的帮助。 我有一个表中的查询,我需要使用oracle apex将其作为CSV附件发送到电子邮件中。这就是所有这些的目标——乐于探索不同的选项/sql以获得相同的结果(通过oracle apex) 示例查询:从用户数据库中选择用户、标题、部门,其中dept=:DEPARTMENT 我的查询带回了大量数据(预期) 基于此,我的想法是将此查询变成一个BLOB,并将其保存到另一个表(TBL\u EMAIL\u CONTENT),然后我可以使用APEX\u MAIL.AD
从用户数据库中选择用户、标题、部门,其中dept=:DEPARTMENT
我的查询带回了大量数据(预期)
基于此,我的想法是将此查询变成一个BLOB,并将其保存到另一个表(TBL\u EMAIL\u CONTENT),然后我可以使用APEX\u MAIL.ADD\u附件功能将其放入电子邮件中
create or replace FUNCTION clob_to_blob(src_clob CLOB) RETURN BLOB IS
tgt_blob BLOB;
amount INTEGER := DBMS_LOB.lobmaxsize;
dest_offset INTEGER := 1;
src_offset INTEGER := 1;
blob_csid INTEGER := nls_charset_id('UTF8');
lang_context INTEGER := DBMS_LOB.default_lang_ctx;
warning INTEGER := 0;
begin
if src_clob is null then
return null;
end if;
DBMS_LOB.CreateTemporary(tgt_blob, true);
DBMS_LOB.ConvertToBlob(tgt_blob, src_clob, amount, dest_offset, src_offset, blob_csid, lang_context, warning);
return tgt_blob;
end clob_to_blob;
然后,我将使用以下方式发送:
APEX_MAIL.SEND(
p_to => 'UKSERVERPATCHING@VODAFONE.COM',
p_from => 'ukserverpatching@vodafone.com',
p_bcc => 'ukserverpatching@vodafone.com',
p_body => to_clob(' '),
p_body_html => l_body,
p_subj => l_subj);
for c8 in(
SELECT CONTENT,FILENAME,MIMETYPE
FROM TBL_EMAILCONTENT
where EMAIL_ID = 1)
loop
APEX_MAIL.ADD_ATTACHMENT(
p_mail_id => l_id,
p_attachment => c8.CONTENT,
p_filename => c8.FILENAME,
p_mime_type => c8.MIMETYPE);
end loop;
不幸的是,这个结果会使CSV无法读取,其中包含乱码字符。到目前为止,我在网上尝试的其他选项似乎遇到了问题,查询结果太长,无法通过varchar值处理
以前有没有人遇到过这样的问题,或者可以在网上给我指一篇文章,看起来是在做这类事情
提前谢谢,非常感谢
APEX_MAIL.SEND(
p_to => 'UKSERVERPATCHING@VODAFONE.COM',
p_from => 'ukserverpatching@vodafone.com',
p_bcc => 'ukserverpatching@vodafone.com',
p_body => to_clob(' '),
p_body_html => l_body,
p_subj => l_subj);
for c8 in(
SELECT CONTENT,FILENAME,MIMETYPE
FROM TBL_EMAILCONTENT
where EMAIL_ID = 1)
loop
APEX_MAIL.ADD_ATTACHMENT(
p_mail_id => l_id,
p_attachment => c8.CONTENT,
p_filename => c8.FILENAME,
p_mime_type => c8.MIMETYPE);
end loop;