【发布时间】:2021-10-07 22:08:53
【问题描述】:
我正在尝试从我的 oracle DB 生成 CSV 文件并通过 mail 将其作为附件发送。我对生成的 CSV 文件有疑问。我可以看到表中的某些值没有正确读取。就像描述列中的值写入 CSV 文件中的两个不同单元格而不是单个单元格一样。
您可以看到一个值写入两个单元格而不是一个单元格作为其余值。这里的“测试请忽略邮件”应被视为单个值,并且应位于同一单元格中。
我注意到表格中的值如下:
这可能是因为我的代码无法读取多行中的值吗?
这是我创建 CSV 文件的代码,FC_ED_DESC 字段导致了问题,我在我为邮件编写的代码的附件部分包含“l_clob”。
DECLARE
l_clob CLOB;
l_attach_text VARCHAR2 (32767);
l_attach_text_h VARCHAR2 (32767);
FC_SV_STATUS_DESC VARCHAR2(200) := 'open';
-- select query from table to get the values needed
CURSOR c1 IS
select FC_ED_RECORD_ID,to_char(FC_ED_UPLOADTIME,'DD.MM.YY')FC_ED_UPLOADTIME,FC_ED_USER_ID ,FC_ED_BROKER,FC_ED_ACT_NUM,FC_ED_POLICY_NUM,FC_ED_AMOUNT,FC_ED_TRANS_TYPE,FC_ED_CURRENCY,to_char(FC_ED_DUE_DATE,'DD.MM.YY')FC_ED_DUE_DATE,FC_ED_SENDER_NAME,FC_ED_DESC,to_char(FC_ED_CREDIT_DATE,'DD.MM.YY')FC_ED_CREDIT_DATE from MYTABLE where FC_ED_EXPCASH_STATUS = 1 ;
BEGIN
-- csv file columns are these
l_attach_text_h :=
'FC_ED_RECORD_ID ,FC_ED_UPLOADTIME ,FC_ED_USER_ID ,FC_ED_BROKER ,FC_ED_ACT_NUM ,FC_ED_POLICY_NUM ,FC_ED_AMOUNT ,FC_SV_STATUS_DESC ,FC_ED_TRANS_TYPE ,FC_ED_CURRENCY ,FC_ED_DUE_DATE ,FC_ED_SENDER_NAME ,FC_ED_DESC ,FC_ED_CREDIT_DATE';
FOR employee_rec in c1
LOOP
DBMS_OUTPUT.put_line('Before loop COUNT Boss ...'||c1%ROWCOUNT);
-- each value is read using loop
l_attach_text :=
employee_rec.FC_ED_RECORD_ID ||','||
employee_rec.FC_ED_UPLOADTIME ||','||
employee_rec.FC_ED_USER_ID ||','||
employee_rec.FC_ED_BROKER ||','||
employee_rec.FC_ED_ACT_NUM ||','||
employee_rec.FC_ED_POLICY_NUM ||','||
employee_rec.FC_ED_AMOUNT ||','||
FC_SV_STATUS_DESC ||','||
employee_rec.FC_ED_TRANS_TYPE ||','||
employee_rec.FC_ED_CURRENCY ||','||
employee_rec.FC_ED_DUE_DATE ||','||
employee_rec.FC_ED_SENDER_NAME ||','||
employee_rec.FC_ED_DESC ||','||
employee_rec.FC_ED_CREDIT_DATE ||chr(13);
l_clob := l_clob || l_attach_text;
END LOOP;
-- adding values
l_clob := l_attach_text_h ||chr(13)|| l_clob;
谁能帮我解决这个问题?
【问题讨论】:
-
这能回答你的问题吗:stackoverflow.com/questions/10546933/…
-
你能告诉我如何在我的代码中引入该解决方案