zoukankan      html  css  js  c++  java
  • shell与sqlplus交互

    sqlplus 常用参数
    -s: 不显示登录时的头信息,也不显示提示符,一般用在shell中调用sqlplus时
    set heading off: 不显示列名
    set feedback off: 不显示行数信息

    最基本的shell中调用sqlplus格式
    << EOF ....... EOF: EOF是一对标识符,标识其内的文字传给左右的的命信,不一定必须是EOF
    可以是任何两个对应的字符

    #!/bin/bash
    sqlplus /nolog << EOF
    conn scott/tiger
    select * from dept;
    exit
    EOF

    [oracle@localhost test]$ ./plus.sh

    SQL*Plus: Release 10.2.0.1.0 - Production on Fri Jun 7 12:13:04 2013

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

    SQL> Connected.
    SQL>
    DEPTNO DNAME LOC
    ---------- -------------- -------------
    10 ACCOUNTING NEW YORK
    20 RESEARCH DALLAS
    30 SALES CHICAGO
    40 OPERATIONS BOSTON

    SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining option
    [oracle@localhost test]$ echo $ORACHE_SID

    //修改脚本,加上些参数再看输出结果
    #!/bin/bash
    sqlplus -s /nolog << EOF
    set heading off
    set feedback off
    conn scott/tiger
    select * from dept;
    exit
    EOF

    //加上参数的结果已经没了登录提示信息、列名、与受影响的行数信息
    [oracle@localhost test]$ ./plus.sh

    10 ACCOUNTING NEW YORK
    20 RESEARCH DALLAS
    30 SALES CHICAGO
    40 OPERATIONS BOSTON

    SQL查询结果赋值给shell变量:
    以下把dept表的总行赋给了$value这个变量
    #!/bin/bash
    values=`
    sqlplus -s /nolog << EOF
    set heading off
    set feedback off
    conn scott/tiger
    select count(*) from dept;
    exit
    EOF`
    echo "$values has retrieve"

    [oracle@localhost test]$ ./plus.sh

    4 has retrieve


    把shell的变量作为参数传给sqlplus
    $0指文件名,$1为第一个参数,$n为第n个参数
    $#指参数总数

    [oracle@localhost test]$ cat plus.sh
    #!/bin/bash
    if [ $# -ne 1 ];then
    echo 'parameter is missing'
    exit 0
    fi
    values=`
    sqlplus -s /nolog << EOF
    set heading off
    set feedback off
    conn scott/tiger
    select * from dept where DEPTNO=$1;
    exit
    EOF`
    echo "dept data is: $values"

    执行这个脚本并传入值,查询了对应的数据

    [oracle@localhost test]$ ./plus.sh 10
    dept data is:
    10 ACCOUNTING NEW YORK

  • 相关阅读:
    Python os 模块
    Python sys 模块
    [SAP BASIS]How to kill process in SAP ?
    linux lsof 详解
    [ORACLE] Oracle 索引失效总结
    [SAP BASIS] [TMS] 更改 Backup-Domain-Controler as Domain Controller|将TMS备用域控制器改为主域控制器
    python 生产者消费者模型
    Python 多线程
    python queue 模块
    [Linux]ipcs,ipcm 命令详解
  • 原文地址:https://www.cnblogs.com/doclaim/p/3127914.html
Copyright © 2011-2022 走看看