读书人

Linux/Unix shell sql 其间传递变量

发布时间: 2013-03-26 21:10:11 作者: rapoo

Linux/Unix shell sql 之间传递变量

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


我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html

读书人网 >UNIXLINUX

热点推荐