说明,内容均来自 Alfred Zhao 的 https://www.cnblogs.com/jyzhao/p/4819884.html
(感谢分享),以下仅记录个人操作过程中的关键说明:
一. 使用 sqlplus 导出查询结果:
1. 准备脚本 call.sql
如果只需要单纯的导出 excel或 csv ,可以 PL/SQL 中进行查询导出再另存为。这里只是尝试一下 sqlplus 功能。
具体语法可参考 https://www.cnblogs.com/hzj680539/p/4212271.html
`
conn scott/tiger -- 登录
set echo off
set term off
set line 1000 pages 0
set feedback off
set heading off
set trimspool on
spool D:\ldr_object.csv -- 执行结果导出到这
@D:\getobject.sql -- 执行的查询,直接sql脚本也行
spool off
set trimspool off
set heading on
set feedback on
set term on
set echo on
exit
`
2.执行脚本 call.sql
(1)sqlplus /nolog 先进入sqlplus命令模式
(2)start call.sql 在sqlplus命令模式下执行
二. 使用 sqlldr 导入数据:
1. 准备控制文件 ldr_object.ctl
`
load data
infile "D:\ldr_object.csv" --将导入的数据文件,可以是 csv、txt、log 等,可多个(一个一行)
truncate into table objects --先truncate(可选),再insert|replace|append
fields terminated by "," optionally enclosed by ' ' TRAILING NULLCOLS
(owner,
object_name,
object_id,
created "to_date(:created,'yyyy-mm-dd hh24:mi:ss')",
status "trim(:status)"
)
`
1. 执行控制文件 ldr_object.ctl
(1)进入 cmd 命令模式
(2)执行 sqlldr xxx=yyy ……
`
sqlldr userid=SCOTT/123456@ORCL --登录信息
control=D:\ldr_object.ctl --控制文件路径
bad=D:\ldr_object4.bad --错误文件
log=D:\ldr_object4.log --日志文件
skip=0 --跳过前几行
errors=9999 --异常几次后停止
rows=10000 --每读几行处理一次(批处理)
direct=true streamsize=10485760 date_cache=5000
`
标签:set,off,ldr,sqlldr,object,spool,--,sqlplus,Oracle From: https://www.cnblogs.com/qq564934147/p/18080649