Linux/Unix shell sql 之间传递变量

来源:互联网 发布:淘宝摩托车怎么样 编辑:程序博客网 时间:2024/05/17 23:52

       灵活结合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体系结构)