您的选择不完整,因为您没有from
子句,但不确定您是否在复制和粘贴中丢失了该子句。因为它没有任何东西可以运行,因为部分语句永远不会执行(没有终止;
或/
在下一行)。如果您确实有一个from farmers;
子句,那么它可能会显示命令加上 ORA-00923 错误。
您不能只在字段之间加上引号逗号,您需要使用||
连接符号将字段与该字符连接起来:
spool 'c:\farmerList.csv'
select FIRSTNAME
||','|| LASTNAME
||','|| TRN
||','|| CELL
||','|| PARISH
from farmers;
给出一个包含
Joe,Grundy,X,Y,Ambridge
这些字段不必在单独的行上,我只是发现更容易阅读和跟踪逗号。
您不需要/
在 spool 命令之后 - 如果有,它将重新执行 之前的最后一条语句spool
- 并且您不需要在 spool 文件名周围加上引号,除非它包含空格,但它们不需要伤害。
还有一个set colsep
命令可用于将列分隔符设置为逗号,但您必须担心填充,因此我发现像您(几乎)那样将列连接在一起更容易。
除了 SQL*Plus,因为我没有注意到标题中的 SQL Developer 参考。假脱机在 Developer 中有点奇怪,因为它似乎捕获和回显您可能不想要的东西,并且并非所有set
命令都有效(哪些命令取决于版本)。
我认为,更安全和首选的方法是运行没有连接逗号的普通查询:
select FIRSTNAME, LASTNAME, TRN, CELL, PARISH
from farmers;
并使用“运行”而不是“运行脚本”,以便结果出现在查询结果窗口的网格视图中。右键单击网格并选择“导出”。然后,您可以另存为 CSV,甚至是 XLS,如果您愿意,可以选择不包含标题行。