将PLSQL变量导出为CSV文件

时间:2018-05-30 12:55:15

标签: sql stored-procedures plsql oracle11g export-to-csv

我有一个PL / SQL块,我在其中声明并填充一些变量。 我只是使用例如检查值DBMS_OUTPUT.PUT_LINE('My Name= ' || V_NAME);

我有42个这样的变量,我需要将每个变量导出到CSV文件中。

SET SERVEROUTPUT ON;

DECLARE
    RECORD_NUM   VARCHAR2 (10) := 'ITEM0001';
    USER_ID      NUMBER (11);
    FIRST_NAME   VARCHAR2 (25);
    LAST_NAME    VARCHAR2 (25);
BEGIN
    SELECT ID, FIRSTNAME, LASTNAME
      INTO USER_ID, FIRST_NAME, LAST_NAME
      FROM MYSCHEM.EMPLOYEES
     WHERE HIRE_DATE > SYSDATE;

    DBMS_OUTPUT.PUT_LINE ('FIRSTNAME= ' || FIRSTNAME);
    DBMS_OUTPUT.PUT_LINE ('LASTNAME = ' || LAST_NAME);
    DBMS_OUTPUT.PUT_LINE ('USER_ID = ' || USER_ID);
END;
/

如何将这些变量导出到CSV文件?

1 个答案:

答案 0 :(得分:0)

这是一个如何使用utl_file的最小例子:

DECLARE
    outputfile   UTL_FILE.file_type;
BEGIN
    outputfile := UTL_FILE.FOPEN ('DIRECTORY', 'filename.csv', 'w');

    UTL_FILE.PUT_LINE (outputfile, 'One,Two,Three');
    UTL_FILE.PUT_LINE (outputfile, '1,2,3');
    UTL_FILE.PUT_LINE (outputfile, '1,2,3');

    UTL_FILE.FCLOSE (outputfile);
END;

像William提到的:这将在您的数据库服务器上创建一个文件。

如果你想在客户端上创建它,我们需要更多的detials,你的客户端如何访问db。