我有一个函数,它返回 SETOF text[]。此函数的示例结果:
{080213806381,"personal data1","question 1",answer1,"question 2",answer2,"question 3","answer 3"}
{080213806382,"personal data1","question 1",answer1,"question 2",answer2,"question 3","answer 3"}
我正在用如下语句组成每一行:
resultRow := array_append(resultRow, fetchedRow.data::text);
进而:
RETURN NEXT resultRow;
这是我的 COPY 命令:
COPY(
SELECT myFunction()
) TO 'D:\test_output.csv' WITH (FORMAT 'csv', DELIMITER E',', HEADER false)
我有几个问题:
- 不管值以相同的方式附加到数组中的事实,其中一些是双引号,而另一些则不是。这在某种程度上取决于值中是否存在空格字符。例如,查看数组的第一个元素或每行中的 answer2 和“answer 3”。我想要一些统一的行为。
- 使用 COPY 命令导出到 CSV 后,我在开头和结尾都得到了所有这些花括号的相同行。我不希望它们在 CSV 中。
我能做些什么来解决这些问题?