我在 Oracle 中有一个表,其中包含如下条目:
表t1:
属性1 | 属性2 |
---|---|
abc | def“ghi |
我正在尝试运行以下sql:
select attribute1||'|'||attribute2 t1;
我正在将 sql Developer 的结果导出为文本文件,我在文本文件中看到以下内容:
ATTRIBUTE1||'|'||ATTRIBUTE2
abc|def""ijk
如何删除sql Developer导出时多余的双引号?
到目前为止,我只是使用查找和替换从文本文件中删除它,这并不理想。
在逗号分隔变量格式中,
"
引号用于启动可能包含逗号的字符串文字。
如果您有数据:
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
格式。