Shell腳本連接oracle數(shù)據(jù)庫的實(shí)現(xiàn)代碼
最近研究了一下怎樣使用shell 腳本連接數(shù)據(jù)庫,然后執(zhí)行查詢語句。這樣對(duì)于需要定時(shí)執(zhí)行的腳本,我們可以建個(gè) crontab 去定時(shí)執(zhí)行。
先介紹一下客戶端的安裝:
linux 環(huán)境需要用 sqlplus 客戶端去連接oracle 數(shù)據(jù)庫,首先我們需要確認(rèn)有沒有安裝:which sqlplus如果沒有安裝就需要先安裝一下,安裝步驟如下:
到oracle 官網(wǎng)下載,之后安裝以下兩個(gè)模塊:
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
配置環(huán)境變量:
vim /etc/profile
保存之后,執(zhí)行: source /etc/profile
whereis oracle #查看oracle 客戶端安裝路徑
進(jìn)入客戶端目錄
添加配置文件: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) ) )
編輯保存完成以后,可以用命令行測(cè)試是否連接成功
sqlplus username/password@DATABASENAME
如果正常的話,就可以順利的連上oracle 數(shù)據(jù)庫了。
那我們就開始寫自己的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
連接數(shù)據(jù)庫語句,標(biāo)準(zhǔn)輸出到 tmp.txt,從<<EOF 之間獲取輸入
去掉表頭
設(shè)置行寬度
關(guān)閉自動(dòng)換行
查詢語句
退出
EOF 輸入結(jié)束
sed 刪除tmp.txt 1~12 行連接數(shù)據(jù)庫產(chǎn)生的文本
刪除 selected 到最后一行的文本
刪除 Disconnected 到最后一行的文本
刪除最后一行文本
到此這篇關(guān)于Shell腳本連接oracle數(shù)據(jù)庫的實(shí)現(xiàn)代碼的文章就介紹到這了,更多相關(guān)Shell連接oracle內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Oracle數(shù)據(jù)庫ORA-12560錯(cuò)誤問題的解決辦法
- Oracle數(shù)據(jù)庫服務(wù)器修改操作系統(tǒng)時(shí)間的注意事項(xiàng)詳解
- PL/SQL登錄Oracle數(shù)據(jù)庫報(bào)錯(cuò)ORA-12154:TNS:無法解析指定的連接標(biāo)識(shí)符已解決(本地未安裝Oracle需要連接服務(wù)器上的)
- PLSQL Developer連接oracle數(shù)據(jù)庫配置教程
- plsql 連接oracle數(shù)據(jù)庫詳細(xì)配置的方法步驟
- PLSQL Developer連接Oracle11g 64位數(shù)據(jù)庫配置詳解(圖文)
- oracle取數(shù)據(jù)庫中最新的一條數(shù)據(jù)可能會(huì)遇到的bug(兩種情況)
相關(guān)文章
CentOS 6.x系統(tǒng)升級(jí)Python到2.7版本的Shell腳本分享
這篇文章主要介紹了CentOS 6.x系統(tǒng)升級(jí)Python到2.7版本的Shell腳本分享,本文把升級(jí)過程總結(jié)成一個(gè)自動(dòng)腳本,需要的朋友可以參考下2014-11-11Shell腳本導(dǎo)入導(dǎo)出數(shù)據(jù)的項(xiàng)目示例
在工作中,很多場(chǎng)景都會(huì)涉及到數(shù)據(jù)的導(dǎo)入導(dǎo)出,本文就介紹一下使用Shell腳本導(dǎo)入導(dǎo)出數(shù)據(jù)的項(xiàng)目示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04Linux Shell中的特殊符號(hào)和含義簡(jiǎn)明總結(jié)(包含了絕大部份)
這篇文章主要介紹了Linux Shell中的特殊符號(hào)和含義簡(jiǎn)明總結(jié),本文匯總了包含了絕大部份的Shell特殊符號(hào),對(duì)每一個(gè)符號(hào)的作用做了總結(jié),需要的朋友可以參考下2014-06-06shell監(jiān)控linux系統(tǒng)進(jìn)程創(chuàng)建腳本分享
shell監(jiān)控linux系統(tǒng)進(jìn)程創(chuàng)建腳本,大家參考使用吧2013-12-12利用perl、python、php、shell、sed、awk、c 實(shí)現(xiàn)字符串的翻轉(zhuǎn)
今天心血來潮,看到下面的題目后延伸了一下,回顧自己以前學(xué)到的一些知識(shí)2014-04-04