#CSV文件导出
exp工具支持通过两种交互方式导出CSV数据,分别为命令行方式和配置文件方式。
# 使用命令行导出数据
# 命令格式
exp --csv {Common Options} {Export Options} {CSV Options}
# 命令选项-Common Options
([]为可选项)
选项 | 含义 |
---|---|
-f, --format | 数据文件格式,csv |
-u, --user | 数据库用户名, 系统用户或普通用户,普通用户需要具备访问系统表权限 |
-p, --password | 数据库用户密码 |
[-L, --logfile] | 日志文件路径,缺省时直接将日志打印在前端,支持相对路径(不可为../相对路径) |
[-F, --file] | csv文件导出路径,缺省时导出至当前路径,支持相对路径(不可为../相对路径) |
[--loglevel] | 日志等级,off/error/warn/info/debug/trace,默认值info |
[--server-host] | 数据库IP及监听端口,默认值"127.0.0.1:1688" |
[--use-threads] | 工作线程数,默认值1 |
# 命令选项-Export Options
选项 | 含义 |
---|---|
-T, --tables | 导出的表名称,多张表以逗号隔开 |
-O, --owner | 表的所属用户,仅指定一个 |
# 命令选项-CSV Options
选项 | 含义 |
---|---|
[--fields-enclosed-by] | 指定单个字符作为文件中各字段的包围符,该字符可以是ASCII任意一个字符,默认值'\0', 如果字段中出现了指定的包围符,导入的真实数据为去除掉包围符后的数据 |
[--fields-terminated-by] | 使用单个字符char作为字段的分隔,该字符可以是ASCII任意一个字符,默认值'|' |
[--lines-terminated-by] | 使用单个字符char作为行分隔符,该字符可以是ASCII任意一个字符,默认值'\n' |
[--date-format] | 支持修改日期格式,与数据库支持的所有日期格式一致,默认值'YYYY-MM-DD' |
[--time-format] | 支持修改时间格式,与数据库支持的所有时间格式一致,默认值'HH24:MI:SS.FF' |
[--timestamp-format] | 支持修改时间戳格式,与数据库支持的所有时间戳格式一致,默认值'YYYY-MM-DD HH24:MI:SS.FF' |
# 使用配置文件导出数据
# 配置模板
可按如下配置模板进行导出选项配置:
owner = sales
format = csv
user = sys
password = sys
server-host = 127.0.0.1:1688
tables = area,branches
logfile = /home/yasdb
file = /home/yasdb
loglevel = info
fields-enclosed-by = "
fields-terminated-by = ,
Note:
(1)配置文件和命令行配置相同的参数,以命令行为准。
(2)同一参数重复配置,以最后一次配置为准。
(3)上述配置文件中的各项值请替换为实际值。
(4)上述路径可配置为相对路径,但不能为../相对路径。
# 操作示例
1.以对YashanDB的sales用户下的样例表area,branches执行导出为例。
2.新建导出任务配置文件expconfig.ini:
owner = sales
format = csv
user = sys
password = sys
server-host = 127.0.0.1:1688
tables = area,branches
logfile = /home/yasdb
file = /home/yasdb
loglevel = info
fields-enclosed-by = '
fields-terminated-by = ,
3.执行导出命令exp --csv --config-file expconfig.ini:
$ exp --csv --config-file expconfig.ini
YashanDB Export Release 22.2.0.0 x86_64 8f54fba
[EXPORT] export sales.area succeeded
[EXPORT] export sales.branches succeeded
4.导出路径/home/yasdb下生成按表名命名的CSV数据文件:
$ ll
total 1792
-rw-r-----. 1 yasdb yasdb 121 Nov 6 00:06 area
-rw-r-----. 1 yasdb yasdb 332 Nov 6 00:06 branches
$ vi area
'01','华东','Shanghai'
'02','华西','Chengdu'
'03','华南','Guangzhou'
'04','华北','Beijing'
'05','华中','Wuhan'