如何在 Oracle PLSQL 中以“文本”格式保存 Excel 文件?

问题描述

我在表单中存在按钮的 WHEN BUTTEN pressed 触发器中编写了代码代码保存了一个excel文件,如下所示:

DECLARE
    OUT_FILE TEXT_IO.FILE_TYPE;
    ---
    CURSOR CUR_1  IS 
    SELECT  V.NO,V.DATE          
              
    FROM    V_RECEIPT V 
    ---
BEGIN   
    OUT_FILE := TEXT_IO.FOPEN('D:\EXPORT_EXCEL\'||:GLOBAL.USRNAME||'.CSV','W'); 
    ---
    TEXT_IO.PUT(OUT_FILE,'SEP = ;');    
    TEXT_IO.NEW_LINE(OUT_FILE);
    
    TEXT_IO.PUT(OUT_FILE,' NO_RECEIPT ; DATE_RECEIPT ');    

    TEXT_IO.NEW_LINE(OUT_FILE);
        ---
    FOR X IN CUR_1 LOOP

        TEXT_IO.PUT(OUT_FILE,'00001'      || ';' ); 

        TEXT_IO.PUT(OUT_FILE,X.DATE              ); 
        ---
        TEXT_IO.NEW_LINE(OUT_FILE);
    END LOOP;
    ---
    TEXT_IO.FCLOSE(OUT_FILE);
    ---
END;

问题是在输出的excel文件中,指定为“00001”的文本列被保存为“1”。我不知道天气有没有一种方法可以将 excel 单元格格式确定为“文本”。 有什么解决办法吗?

解决方法

要将值解释为字符串而不将它们转换为 .CSV 文件中的字符串以外的数据类型,请编写如下代码:

TEXT_IO.PUT(OUT_FILE,'"=""00001"""'                || ';' );

还有这个:

TEXT_IO.PUT(OUT_FILE,'"=""' || X.DATE || '"""' || ';' );