如今,自动化是大家越来越关注的方向,很多任务更加迫切需要一键/小白化。
在对于 Oracle 数据库数据的处理,不能始终死板的使用 import 语句来导出数据。
.dmp文件局限性太大(尤其是不便于处理)。
在SHELL脚本中,.dmp文件处理起来非常麻烦,容错率极差。
自动化脚本中,对于规整的指定格式的文本处理起来更加得心应手,不容易出错。
米虫在本文中以导出数据库表记录,逗号隔开字段内容为例,写一个脚本实例。
编写数据导出主要用到 sqlplus 客户端命令、 spool 命令和 EOF 命令。
spool 可以设置大量的格式化配置。
# 基本配置
dbName=mebugs
dbPW=password
old_db_ip_port_id=127.0.0.1:1536/ora11g
# 导出的数据文件
dataFile=data/user_mebugs_info.txt
# 数据库连接命令
sqlplus -s $dbName/$dbPW@//$old_db_ip_port_id
# SPOOL的指定文件
spool $dataFile
由于EOF语句中不支持加批注,所有配置项在此处说明
所关闭设置是为了导出特定格式的数据文件更纯粹,跟便于格式化处理。
具体配置按照个人的需求去配置。
导出的数据格式通过SQL多字段拼接为一个字段,可以自定义。
# 基本配置
dbName=mebugs
dbPW=password
old_db_ip_port_id=127.0.0.1:1536/ora11g
# 导出的数据文件
dataFile=data/user_mebugs_info.txt
# 开始导出
sqlplus -s $dbName/$dbPW@//$old_db_ip_port_id > /dev/null<<EOF
spool $dataFile
SET echo OFF
SET feedback OFF
SET newpage NONE
SET pagesize 0
SET linesize 5000
SET verify OFF
SET term OFF
SET trims ON
SET heading OFF
SET trimspool ON
SET trimout ON
SET timing OFF
select rtrim(COLUMN_1,chr(10))||','||rtrim(COLUMN_2,chr(10))||','||rtrim(COLUMN_3,chr(10))||','||rtrim(COLUMN_4,chr(10)) from mebugs_data;
spool OFF
exit
EOF
关于 EOF 本站有文章介绍过,一个简单的支行输出指令的语法,感兴趣可以看看。
当前还没有观点发布,欢迎您留下足迹!
存储过程是个好东西,WEB工程在架构阶段会设计很多存储过程,后续在架构中开发需求的时候,反而会直接写SQL完成各项诉求。所以说,这玩意儿略微有那么一点点伪高端。
在Oracle中创建、运行、维护定时任务,配合存储过程可以完成很多特定的业务诉求,dbms_job提供了使用的API功能便于我们实现更为细致的定时任务管理
Linux系统下的Oracle数据库实用常用的维护命令整理,本文内容偏向运维,主要包含:基础启动重启、表空间维护、数据库角色与用户维护、字符集配置等,并给出各类场景的实例语句
对于数据库而言,多表连接操作可以算的上是基本操作,在 MongoDB 通过 $lookup 聚合查询可以实现多表左连接查询,在后续的版本中 $lookup 得到了一系列的增强,实现更为复杂的关联查询
MySql数据库在Linux系统下默认数据库名与表名严格区分大小写,一般情况下我们创建表名习惯使用全小写,如果遇到某些从Windows服务器迁移过来的数据库可能需要设置大小写不敏感
安装 MySql 出现“由于找不到 MSVCP120.dll ,无法继续执行代码。重新安装程序可能会解决此问题。”由于系统缺少 vcredist 导致,下载安装官方 vcredist 即可。