如何从结果集创建文件?

时间:2016-11-15 17:54:16

标签: linux windows oracle stored-procedures

我正在使用Oracle 11g

我正在尝试从结果集创建一个平面文件(CSV或TXT),但我还在努力开始。好像我必须创建一个存储过程并使用UTL_FILE。做了一些研究后,我有两个问题:

  1. 文件在哪里创建?根据{{​​3}},我需要访问Oracle用户目录,但在Windows和Linux环境中的位置是什么?我必须在Windows上进行测试,该脚本最终将在Linux环境中进行。

  2. 创建上述文件并从相当基本的SELECT查询中加载数据的SQL脚本的基本格式是什么?我没有看到UTL_FILE函数将记录写入文件;我是否必须遍历整个结果集并使用PUT或者我能以某种方式将整个结果推送到文件中吗?

2 个答案:

答案 0 :(得分:2)

我认为使用" spool"可以做到这一点。

查看https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:9518534700346581975

此处有更多信息http://www.dba-oracle.com/t_sqlplus_spool.htm

该文件将在您从中启动sqlplus的目录中创建。

答案 1 :(得分:0)

如果您使用的是SQL Developer,则可以为查询创建一个视图。在架构浏览器中右键单击视图,然后选择导出和导出为csv。

但就我之前的回答所说,我个人会选择假脱机。 SQL Plus是最基本的客户端,所以我不相信你不会拥有它。