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

 更新时间:2020-06-17 01:20:27   作者:佚名   我要评论(0)

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

最近研究了一下怎样使用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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

  • PowerShell连接SQL SERVER数据库进行操作的实现代码
  • shell脚本连接、读写、操作mysql数据库实例

相关文章

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

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

    最近研究了一下怎样使用shell 脚本连接数据库,然后执行查询语句。这样对于需要定时执行的脚本,我们可以建个 crontab 去定时执行。 先介绍一下客户端的安装: linu
    2020-06-17
  • shell脚本返回值问题的解决

    shell脚本返回值问题的解决

    如果学习过高级语言比如java和c语言等,此时你要是获取一个函数的返回值,直接在函数里面写上return即可,然后在函数执行时将返回结果赋值给某个变量即可。但是在sh
    2020-06-17
  • Linux下科学计数法(e)转化为数字的方法

    Linux下科学计数法(e)转化为数字的方法

    科学计数法使用e标识数值,将科学计算学转化为数字的思路:按e右边的数字移动小数点位数。e右边的数字如果是负数,则向左移动小数点。示例如下: 1.2345678e2 = 12
    2020-06-17
  • linux shell中“.” 和 “./”执行的区别详解

    linux shell中“.” 和 “./”执行的区别详解

    目前注意到的区别主要在于环境变量的作用域上: 1. 如果使用" ./ " 执行,可以理解为程序运行在一个全新的shell中,不继承当前shell的环境变量的值, 同时若在程序中
    2020-06-17
  • shell脚本返回值及其使用场景的实现

    shell脚本返回值及其使用场景的实现

    应用场景 在一些应用中(比如Jenkins),嵌入了shell脚本,系统通过shell脚本的返回值来判断执行结果,如果返回值非0,则发生了执行错误,需要中止执行,这在使用
    2020-06-17
  • linux shell 中判断文件、目录是否存在的方法

    linux shell 中判断文件、目录是否存在的方法

    本文主要介绍了linux shell 中判断文件、目录是否存在的方法,分享给大家 -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f
    2020-06-17
  • 常用Shell命令集合和使用技巧(推荐)

    常用Shell命令集合和使用技巧(推荐)

    一、控制台使用技巧 基于我平时的工作经验,总结出一些我常用的快捷键 1.1 操作快捷键 Ctrl+r:可以快速查找历史命令 Ctrl+a / Ctrl+e:移动光标到命令
    2020-06-17
  • shell 使用指定的分割符来分割字符串的方法

    shell 使用指定的分割符来分割字符串的方法

    shell 如何用指定的分隔符来分割字符串让结果为一个字符串数组,类似 java 中的 split, 而 split 关键字已经留给文件分割了,故字符串就分割处理就不能在使用了,那
    2020-06-17
  • shell脚本自动化创建虚拟机的基本配置之tomcat--mysql--jdk--maven

    shell脚本自动化创建虚拟机的基本配置之tomcat--mysql--jdk--maven

    自动化shell脚本 ps:此处安装的jdk,maven,tomcat均在/opt目录下,如需其他目录或者其他版本,可根据需要改动shell脚本即可。 ps:所有代码全部手敲,已亲测能够
    2020-06-17
  • linux shell 根据进程名获取pid的实现方法

    linux shell 根据进程名获取pid的实现方法

    导读 Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程,因此在获取进程 pid 上二者也有所区别。 交互式 Bash Shell 获
    2020-06-17

最新评论