aPh*_*lRa 18 oracle oracle-11g export command-line
我需要从 Oracle 11g 第 1 版数据库中检索某些数据并将其作为一个或多个 CSV 文件提供。数据驻留在多个表和/或视图中。所有这些都应该通过命令行工作。什么是最好的方法?
ik_*_*elf 11
阿伦,
现在 sqlcl 可从Oracle SQL Developer 4.1 EA2 (4.1.0.18.37) 获得, 您可以像使用古老而著名的 sqlplus 一样使用它。sqlcl 具有 csv 的输出格式设置
set sqlformat csv
spool x.csv
select * from yourtable[s];
spool off
Run Code Online (Sandbox Code Playgroud)
有关 sqlcl 的更多信息,请查看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
Run Code Online (Sandbox Code Playgroud)
如果将结果写入应用程序服务器或客户端,则此方法效果最佳。如果必须将它们写入数据库服务器,则 utl_file 可能是更好的选择。
罗纳德。
您应该查看内置的UTL_FILE包。您可以通过多种方式使用它。
您可以在使用 UTL_FILE 包写入任意数量文件的包中编写任意数量的过程。然后可以从几乎任何应用程序(包括 SQL*Plus)调用这些过程。
您可以编写一个 PL/SQL 脚本来完成相同的工作,并通过在命令行上指定 @scriptname 从 SQL*Plus 命令行本身调用脚本。
您可以使用 UTL_FILE 将一个块直接粘贴到 SQL*Plus 中,但这只能用于一次导出,即使这样它也可能不是最佳路线。
在最简单的情况下,使用 UTL_FILE 的文件导出将包括对FOPEN 的调用、对PUT_LINE 的一个或多个调用以及对FCLOSE的调用。
归档时间: |
|
查看次数: |
61698 次 |
最近记录: |