【问题标题】:Oracle SQL Developer How to export via a command line the result of a SQL script?Oracle SQL Developer 如何通过命令行导出 SQL 脚本的结果?
【发布时间】:2022-11-04 04:53:59
【问题描述】:

这是我在 StackOverflow 上的第一个问题(但不是我在 Oracle SQL Developer 上问自己的第一个问题:p)

我的需求:

我首先尝试只在 Oracle SQL Dev 上完成我的所有工作,但它需要大量资源来完成。

结果,我决定仅导出我需要的所有数据,然后在R中导入所有数据,然后对其进行工作。 最后,完成工作大约需要2分钟:D

我的问题是: 我运行了大约 10 个不同的 SQL 脚本,它们非常简单。请在下面找到其中两个:

select japolip_wnupo wnupo,japolip_socpo socpo,japolip_jasccdp_winag winag,japolip_wnpro wnpro,jaagenp_ainag,jaagenp_nomag
from sunapicf.japolip japolip
left join sunapicf.jaagenp jaagenp on jaagenp_winag = japolip_jasccdp_winag
;
select distinct socpr socpo,jaagenp.jaagenp_winag winag,JACRCFP.JACRCFP_wnpro wnpro,jaagenp_ainag,jaagenp_nomag
from sunapicp.JACRCFP JACRCFP
left join 
(
select japrodp_wnpro,socpr
from sunapicp.japrodp japrodp
cross join xmltable('//JAPRODP' passing xmltype(japrodp.ficxml) columns SOCPR)
) japrodp on japrodp.japrodp_wnpro = JACRCFP.JACRCFP_wnpro
left join sunapicf.jaagenp jaagenp on jaagenp.jaagenp_winag = jacrcfp.jacrcfp_winit
;

然后我必须为每个结果启动导出功能,更改格式和要传递到 .dsv 的文件类型(只是要有正确的逗号:D),还要更改文件夹目录和名称。

它过于重复,可能会产生一些错误。

这就是为什么我想添加一个命令行来指定文件夹目录、名称、格式等等。

你有这方面的信息吗?

非常感谢。

我没有尝试任何东西,因为我没有任何尝试的想法。

我试图将 R 连接到 Oracle,但我想我必须为此付费(而且公司不想:D)。

【问题讨论】:

标签: oracle export oracle-sqldeveloper


【解决方案1】:

使用SQLcl 绝对是要走的路。构建一个脚本(或一组脚本)来运行您想要将数据导出到 CSV 文件的所有查询。下面是一个示例脚本,它将连接到数据库、设置格式、生成文件然后断开连接。

该脚本将使用如下命令启动:

sql /nolog @start_export.sql

start_export.sql示例内容:

--Connect to the database
connect <username>/<password>@<TNSalias>

--Set format to CSV for results from SELECT statements
set sqlformat csv;
--Turn off the number of rows that get returned by the select
set feedback off;

--Create 1st report
spool report1.csv

select japolip_wnupo wnupo,japolip_socpo socpo,japolip_jasccdp_winag winag,japolip_wnpro wnpro,jaagenp_ainag,jaagenp_nomag
from sunapicf.japolip japolip
left join sunapicf.jaagenp jaagenp on jaagenp_winag = japolip_jasccdp_winag;

--Create 2nd report
spool report2.csv

select distinct socpr socpo,jaagenp.jaagenp_winag winag,JACRCFP.JACRCFP_wnpro wnpro,jaagenp_ainag,jaagenp_nomag
from sunapicp.JACRCFP JACRCFP
left join 
(
select japrodp_wnpro,socpr
from sunapicp.japrodp japrodp
cross join xmltable('//JAPRODP' passing xmltype(japrodp.ficxml) columns SOCPR)
) japrodp on japrodp.japrodp_wnpro = JACRCFP.JACRCFP_wnpro
left join sunapicf.jaagenp jaagenp on jaagenp.jaagenp_winag = jacrcfp.jacrcfp_winit;

--Disconnect
exit

【讨论】:

    猜你喜欢
    • 2012-10-19
    • 2015-08-02
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    相关资源
    最近更新 更多