靈活結合Linux/Unix Shell 與SQL 之間的變數傳輸,極大程度的提高了DBA的工作效率,本文針對Linux/Unix shell sql 之間傳遞變數給出幾個簡單的樣本以供參考。
Linux/Unix 下調用SQL,RAMN 請參考:Linux/Unix shell 指令碼中調用SQL,RMAN指令碼
一、樣本
1、shell變數接受sql傳回值之方式一oracle@SZDB:~> more ./retval.sh#!/bin/bashRETVAL=`sqlplus -silent scott/tiger <<EOFSET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFFSELECT * FROM emp WHERE ename='SCOTT';EXIT;EOF`if [ -z "$RETVAL" ]; then echo "No rows returned from database" exit 0else echo $RETVALfioracle@SZDB:~> chmod u+x retval.shoracle@SZDB:~> ./retval.sh7788 SCOTT ANALYST 7566 19-APR-87 34171.88 202、shell變數接受sql傳回值之方式二oracle@SZDB:~> more ./retval_2.sh#!/bin/bash# Author : Robinson Cheng # Blog : http://blog.csdn.net/robinson_0612sqlplus -S "scott/tiger" <<EOFSET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFFcol cnt new_value v_cntSELECT count(*) cnt FROM emp WHERE deptno=10;exit v_cntEOFVALUE="$?"echo "show rows for deptno 10:$VALUE"3、將shell變數作為參數傳遞給sql指令碼oracle@SZDB:~> more ./retval_3.sh#!/bin/bashv_empno="$1"sqlplus -S "scott/tiger" <<EOFSET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFFSELECT ename FROM emp WHERE empno=$v_empno;exitEOFexitoracle@SZDB:~> ./retval_3.sh 7788SCOTT
二、更多參考
有關基於使用者管理的備份和備份恢複的概念請參考
Oracle 冷備份
Oracle 熱備份
Oracle 備份恢複概念
Oracle 執行個體恢複
Oracle 基於使用者管理恢複的處理(詳細描述了介質恢複及其處理)
SYSTEM 資料表空間管理及備份恢複
SYSAUX資料表空間管理及恢複
Oracle 基於備份控制檔案的恢複(unsing backup controlfile)
有關RMAN的備份恢複與管理請參考
RMAN 概述及其體繫結構
RMAN 配置、監控與管理
RMAN 備份詳解
RMAN 還原與恢複
RMAN catalog 的建立和使用
基於catalog 建立RMAN儲存指令碼
基於catalog 的RMAN 備份與恢複
RMAN 備份路徑困惑(使用plus archivelog時)
有關ORACLE體繫結構請參考
Oracle 資料表空間與資料檔案
Oracle 密碼檔案
Oracle 參數檔案
Oracle 聯機重做記錄檔(ONLINE LOG FILE)
Oracle 控制檔案(CONTROLFILE)
Oracle 歸檔日誌
Oracle 復原(ROLLBACK)和撤銷(UNDO)
Oracle 資料庫執行個體啟動關閉過程
Oracle 10g SGA 的自動化管理
Oracle 執行個體和Oracle資料庫(Oracle體繫結構)