华域联盟 linux shell Shell脚本连接oracle数据库的实现代码

Shell脚本连接oracle数据库的实现代码

最近研究了一下怎样使用shell 脚本连接数据库,然后执行查询语句。这样对于需要定时执行的脚本,我们可以建个 crontab 去定时执行。

先介绍一下客户端的安装:

linux 环境需要用 sqlplus 客户端去连接oracle 数据库,首先我们需要确认有没有安装:which sqlplus如果没有安装就需要先安装一下,安装步骤如下:

到oracle 官网下载,之后安装以下两个模块:

rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm 
rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm

配置环境变量:
vim /etc/profile

保存之后,执行: source /etc/profile

whereis oracle #查看oracle 客户端安装路径

 

进入客户端目录

 

添加配置文件:touch tnsnames.ora
编辑配置文件:vim tnsnames.ora

DATABASENAME =
 (DESCRIPTION =
 (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
 )
 (CONNECT_DATA =
  (SERVICE_NAME = servicename)
 )
 )

编辑保存完成以后,可以用命令行测试是否连接成功

sqlplus username/password@DATABASENAME

如果正常的话,就可以顺利的连上oracle 数据库了。
那我们就开始写自己的shell 脚本:

#! /bin/bash
sqlplus username/password@DATABASENAME >tmp.txt << EOF
set heading off
set line 4000
set WRAP OFF
Select user_id,mobile From txlx_xxx_user_info Where rownum <20;
exit
EOF
sed -i 1,12d tmp.txt
sed -i -e '/selected/,$d' tmp.txt
sed -i -e '/Disconnected/,$d' tmp.txt
sed -i '$d' tmp.txt

逐行解释一下:

#!/bin/bash #shell 脚本开头,指定使用哪种shell
连接数据库语句,标准输出到 tmp.txt,从<<EOF 之间获取输入
去掉表头
设置行宽度
关闭自动换行
查询语句
退出
EOF 输入结束
sed 删除tmp.txt 1~12 行连接数据库产生的文本
删除 selected 到最后一行的文本
删除 Disconnected 到最后一行的文本
删除最后一行文本

到此这篇关于Shell脚本连接oracle数据库的实现代码的文章就介绍到这了,更多相关Shell连接oracle内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!

您可能感兴趣的文章:

本文由 华域联盟 原创撰写:华域联盟 » Shell脚本连接oracle数据库的实现代码

转载请保留出处和原文链接:https://www.cnhackhy.com/19718.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部