Oracle写入文件
时间:2020-03-05 18:43:10 来源:igfitidea点击:
我正在运行oracle并有一个查询,该查询从数据库中提取了一些结果。我想将结果写为文本文件。我将如何去做呢?
我更喜欢的方式是使用UTL_FILE。有人会举一个例子吗?
解决方案
回答
如果我们正在从sqlplus运行查询,则可以使用spool命令:
spool /tmp/test.spool
在会话中执行spool命令后,所有输出都将发送到sqlplus控制台以及/tmp/test.spool文本文件。
回答
如果我们使用的是Sql Plus,则非常简单:
SQL> spool c:\temp\out.txt SQL> SELECT * FROM USERS; SQL> spool off
这三个句子会将查询结果" SELECT * FROM USERS"输出到文件c:\ temp \ out.txt。
我们可以使用Oracle的字符串操作功能来格式化此查询。
回答
如果使用的是PL / SQL,则可以使用UTL_FILE包,与使用sql +假脱机的区别在于,文件已写入服务器文件系统。 UTL_FILE具有许多限制,因此服务器端的另一种选择是使用Java存储过程。
回答
这似乎是一个合理的教程,其中包含一些简单的示例UTL_FILE示例
回答
结合使用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;