Oracle写入文件

时间:2008-08-26 08:32:51

标签: oracle

我正在运行oracle并且有一个查询从数据库中提取一些结果。我想把结果写成文本文件。我该怎么做呢?

我最喜欢的方法是使用UTL_FILE。有人会举例说明如何做到这一点吗?

5 个答案:

答案 0 :(得分:4)

如果您正在使用PL / SQL,那么您可以使用UTL_FILE包,与使用sql + spool的区别在于文件被写入服务器文件系统。 UTL_FILE有许多限制,因此服务器端的替代方案是使用Java存储过程。

答案 1 :(得分:3)

如果你正在使用Sql Plus,就像:

一样简单
SQL> spool c:\temp\out.txt
SQL> SELECT * FROM USERS;
SQL> spool off

这三个句子将查询“SELECT * FROM USERS”的结果输出到文件c:\ temp \ out.txt。

您可以使用Oracle的字符串操作函数格式化此查询。

答案 2 :(得分:2)

将UTL_FILE与CREATE DIRECTORY结合使用,以便于使用名称映射目录路径(它不会创建实际目录只是对它的引用,因此请确保首先创建它)

例如


  create directory logfile as 'd:\logfile'; -- must have priv to do this

declare
  vFile utl_file.file_type;
begin
  vFile := utl_file.fopen(logfile ,'syslog','w'); -- w is write. This returns file handle
  utl_file.put(vFile,'Start Logfile'); -- note use of file handle vFile
  utl_file.fclose(vFile); -- note use of file handle vFile
end;

答案 3 :(得分:1)

如果您从 sqlplus 运行查询,则可以使用spool命令:

spool /tmp/test.spool

在会话中执行spool命令后,所有输出都将发送到sqlplus控制台以及/tmp/test.spool文本文件。

答案 4 :(得分:0)

这似乎是一个合理的教程,有一些简单的例子UTL_FILE example