這篇文章給大家分享的是有關(guān)Shell腳本如何連接oracle數(shù)據(jù)庫(kù)的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
成都創(chuàng)新互聯(lián)是專業(yè)的淮上網(wǎng)站建設(shè)公司,淮上接單;提供成都網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行淮上網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!最近研究了一下怎樣使用shell 腳本連接數(shù)據(jù)庫(kù),然后執(zhí)行查詢語(yǔ)句。這樣對(duì)于需要定時(shí)執(zhí)行的腳本,我們可以建個(gè) crontab 去定時(shí)執(zhí)行。
先介紹一下客戶端的安裝:
linux 環(huán)境需要用 sqlplus 客戶端去連接oracle 數(shù)據(jù)庫(kù),首先我們需要確認(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ù)庫(kù)了。
那我們就開始寫自己的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ù)庫(kù)語(yǔ)句,標(biāo)準(zhǔn)輸出到 tmp.txt,從<去掉表頭
設(shè)置行寬度
關(guān)閉自動(dòng)換行
查詢語(yǔ)句
退出
EOF 輸入結(jié)束
sed 刪除tmp.txt 1~12 行連接數(shù)據(jù)庫(kù)產(chǎn)生的文本
刪除 selected 到最后一行的文本
刪除 Disconnected 到最后一行的文本
刪除最后一行文本
感謝各位的閱讀!關(guān)于“Shell腳本如何連接oracle數(shù)據(jù)庫(kù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!