Answers:
阿伦
现在,可以从Oracle SQL Developer 4.1 EA2(4.1.0.18.37)获得sqlcl, 您可以像使用古老而著名的sqlplus一样使用它。sqlcl具有csv的输出格式设置
set sqlformat csv
spool x.csv
select * from yourtable[s];
spool off
有关sqlcl checkout Kris博客的更多信息
在sqlcl最简单之前,这是使用APEX并将报告导出到csv。在普通的旧sqlplus中,您可以使用
set lines 9999 -- the appropriate size
set head off -- no header lines
set colsep ';' --column separator to ;
set pages 0 -- no pages
set feed off
select your data;
spool to_tofile
/
spool off
如果要将结果写在应用程序服务器或客户端上,则效果最好。如果必须将它们写入数据库服务器,则utl_file可能是一个更好的选择。
罗纳德。
您应该查看内置的UTL_FILE包。您可以通过多种方式使用它。
您可以在使用UTL_FILE程序包写入任意数量文件的程序包中编写任意数量的过程。然后可以从几乎所有应用程序(包括SQL * Plus)中调用这些过程。
您可以编写一个PL / SQL脚本来执行相同的工作,并通过在命令行中指定@scriptname从SQL * Plus命令行本身调用该脚本。
您可以使用UTL_FILE直接将一个块粘贴到SQL * Plus中,但这只能用于一次导出,即使那样也可能不是最佳途径。
在最简单的情况下,使用UTL_FILE进行文件导出将由对FOPEN的调用,对PUT_LINE的一个或多个调用以及对FCLOSE的调用组成。
您可以使用Python和cx_Oracle模块将数据以CSV格式提取到磁盘。
使用cx_Oracle连接到Oracle的方法如下:
constr='scott/tiger@localhost:1521/ORCL12'
con = cx_Oracle.connect(constr)
cur = con.cursor()
提取数据后,您可以遍历Python列表并以CSV格式保存数据。
for i, chunk in enumerate(chunks(cur)):
f_out.write('\n'.join([column_delimiter.join(row[0]) for row in chunk]))
f_out.write('\n')
我在编写TableHunter-For-Oracle时使用了这种方法