sql开发者导出正在添加额外的双引号

问题描述 投票:0回答:1

我在 Oracle 中有一个表,其中包含如下条目:

表t1:

属性1 属性2
abc def“ghi

我正在尝试运行以下sql:

select attribute1||'|'||attribute2 t1;

我正在将 sql Developer 的结果导出为文本文件,我在文本文件中看到以下内容:

ATTRIBUTE1||'|'||ATTRIBUTE2

abc|def""ijk

如何删除sql Developer导出时多余的双引号?

到目前为止,我只是使用查找和替换从文本文件中删除它,这并不理想。

oracle oracle-sqldeveloper
1个回答
0
投票

在逗号分隔变量格式中,

"
引号用于启动可能包含逗号的字符串文字。

如果您有数据:

CREATE TABLE table_name (column1, column2) AS
  SELECT '1,2,3', '4,5,6' FROM DUAL;

然后将其编码为 CSV 文件,格式为

"1,2,3","4,5,6"
,其中包含包含在
"
双引号中的逗号的字符串。

但是,如果您有一个包含

"
双引号的值,则文件需要知道它是双引号而不是字符串文字的开头,并且它通过将双引号的数量加倍来实现这一点。

所以:

CREATE TABLE table_name (column1) AS
  SELECT 'abc"def' FROM DUAL;

将编码为 CSV 文件为

abc""def
"abc""def"

如果您希望输出为 CSV,那么您需要接受它将双引号加倍

"
,因为这是 CSV 格式规范/实现的一部分。

如果您想要输出原始字符串,则不要将它们输出为 CSV,并选择其他格式,例如 as @astentx commented

delimited
格式。

© www.soinside.com 2019 - 2024. All rights reserved.