如何在导出 csv 文件中使用 "NULL" 而不是 ""

How to have "NULL" instead of "" in export csv file

我想 "NULL" 使用 sql 开发人员导出 csv 文件。

所以现在我可以这样做了:

但想要这样:

我怎样才能做到这一点?

编辑: Table 我正在使用和正在谈论的一个查询(更改了一些数据):

CREATE EXAMPLE_TABLE
   (    "ID" NUMBER(15,0), 
    "NAME" VARCHAR2(200 BYTE), 
    "DESCRIPTION" VARCHAR2(500 BYTE), 
    "CATEGORY" VARCHAR2(200 BYTE), 
    "CLASS_NAME" VARCHAR2(200 BYTE), 
    "ATA_CHAPTER" VARCHAR2(200 BYTE), 
    "MEL_NUMBER" NUMBER(15,0), 
    "MEL_CODE" VARCHAR2(50 BYTE), 
    "MEL_TEXT" VARCHAR2(200 BYTE), 
    "MODIFIED_TIME" TIMESTAMP (6), 
    "MODIFIED_BY" VARCHAR2(40 BYTE) DEFAULT '$SYSTEM', 
    "AIRCRAFT_GROUP_ID" NUMBER(15,0), 
    "ORDERING" NUMBER(15,0), 
    "EDITABLE" NUMBER(1,0) DEFAULT 1, 
    "OPT_SCOPE" VARCHAR2(5 BYTE), 
    "REMOVABLE" NUMBER(1,0) DEFAULT 1, 
    "MEL_PENALTY" VARCHAR2(50 BYTE)
   )

Insert into EXAMPLE_TABLE(ID,NAME,DESCRIPTION,CATEGORY,CLASS_NAME,ATA_CHAPTER,MEL_NUMBER,MEL_CODE,MEL_TEXT,MODIFIED_TIME,MODIFIED_BY,AIRCRAFT_GROUP_ID,ORDERING,EDITABLE,OPT_SCOPE,REMOVABLE,MEL_PENALTY) values ('1712','TORA','SAD','RUNWAY','SAD',null,null,null,null,null,'$SYSTEM$','521','28','0','SAD','0',null);

在小脚丫之后 select

看起来 NVL 可能会有帮助,例如

SQL> select ename, nvl(to_char(comm), 'NULL') comm
  2  from emp
  3  where rownum <= 2;

ENAME      COMM
---------- ----------------------------------------
SMITH      NULL
ALLEN      300

SQL>

我也使用了 to_char(因为 comm 列的数据类型是 number)。如果没有这种情况就更好了


如果要将所有值括在双引号中,则将它们连接到列值,例如

SQL> set heading off
SQL> set linesize 200
SQL> set colsep ','
SQL>
SQL> select
  2  '"' || name        || '"',
  3  '"' || description || '"',
  4  '"' || mel_number  || '"',
  5  '"' || aircraft_group_id || '"'
  6  from example_table;

"TORA"      ,"SAD"       ,""                                        ,"521"

SQL>

如果您使用 Oracle 12.2,您可以set markup csv on看看它对您的情况是否有用。