在SQL Developer中使用SPOOL和PL / SQL(我不能通过命令行使用SQL Plus)我需要创建一个包含一些信息的文件。问题是,在文件的末尾,我得到2个空白行,这导致我在其他地方导入此文件时遇到麻烦。
使用下一个代码(外部调用以避免sql语句):
SET SERVEROUTPUT ON;
SET TERMOUT OFF;
SET HEAD OFF;
SET VERIFY OFF;
SET FEEDBACK OFF;
SPOOL 'C:\myfile.csv'
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello');
END;
/
SPOOL OFF;
我得到了:
Hello
(blank line)
(blank line)
我可以处理0或1个空白行,但不能处理2.我尝试了SET TRIMSPOOL ON
但是SQL Developer也跳过了这个命令和其他命令(TRIM,TRIMS,SQLBLANKLINES)
答案 0 :(得分:0)
看起来确实无法在SQL Developer中删除额外的CRLF。我只能建议使用不添加额外CRLF的SQLPlus。如果您绝对不能使用它,请考虑使用sed去除最后一行。
任何进一步的讨论和拯救未来的读者'时间,这里是我尝试过的所有选项都没有成功:
SET SERVEROUTPUT ON TERMOUT OFF HEAD OFF FEEDBACK OFF VERIFY OFF
SET ECHO OFF NEWPAGE NONE PAGESIZE 0 RECSEP OFF --TRIMSPOOL ON
SPOOL 'myfile.txt'
--EXEC DBMS_OUTPUT.PUT_LINE('Hello')
SELECT 'Hello' FROM DUAL;
SPOOL OFF
ED myfile.txt