`

shell脚本和sqlplus间的交互

阅读更多

有些时候我们可能需要shell脚本通过oracle的sqlplus执行一些sql,并对结果集进行相关的操作。这里大致总结有如下几种方法
直接获取单个值

#!/bin/bash
result=`sqlplus -S system/password <<EOF
set heading off feedback off pagesize 0 verify off echo off numwidth 4
select 1 from dual;
exit
EOF`
echo $result #将返回sql执行的结果

 

将shell的参数传递给sqlplus

#!/bin/bash
TEST="table_name"
sqlplus -S system/password <<EOF
select * from user_tables where table_name = upper('$TEST');
exit
EOF

 

sqlplus的结果含有多个列值

#使用上篇日志的例子

result=`sqlplus -S system/password <<EOF
set heading off feedback off pagesize 0 verify off echo off numwidth 4
select t2.used,t1.maxsize from (select count(file_name)*32 maxsize from dba_data_files where tablespace_name ='$TBS_NAME') t1,(select trunc(sum(bytes)/1024/
1024/1024) used from dba_data_files where tablespace_name='$TBS_NAME') t2;
exit
EOF`

USED=`echo $result |cut -d " " -f1`
MAXSIZE=`echo $result |cut -d " " -f2`

 

最后两行就是对多结果集的处理,该查询语句将返回两列。不管是两列还是多列。系统都是用空格作为分隔符的顺序输出。所以我们通过上面两行就可以取到需要的值。如果列数或行数较多,可以使用其他方法,如for等。
但是一定要注意,返回的结果集数据里面本身是否就含有空格~不要造成无伤

 

分享到:
评论

相关推荐

    SQLPLUS在Bash_shell的使用

    **Bash Shell中的SQLPLUS交互** 在Bash Shell脚本中,我们可以利用SQLPLUS的这些特性来执行一系列数据库操作。例如,创建一个Shell脚本,其中包含SQLPLUS命令行,可以实现数据备份、查询、更新等任务。使用`system...

    通过shell脚本连接oracle数据库客户端oracle-instantclient11.2-basic-11.2

    本教程将详细介绍如何通过shell脚本利用Oracle Instant Client 11.2 Basic连接到Oracle数据库,并使用sqlldr工具进行数据导入。 首先,`oracle_usr.tar.gz`是一个包含Oracle Instant Client文件的压缩包。你需要将...

    linux shell 查询oracle数据库中的值 并返回

    总的来说,通过shell脚本和`sqlplus`工具,我们可以高效地在Linux环境下与Oracle数据库交互,进行数据查询并获取结果,这对于日常运维或自动化任务非常有用。如果需要处理大量数据或复杂逻辑,还可以结合awk、sed等...

    SQLPlus使用教程

    通过深入学习和实践,你可以充分利用SQLPlus的强大功能,无论是日常的数据库管理还是复杂的脚本编写,SQLPlus都是一个不可或缺的工具。记得结合实际的数据库环境来练习这些命令和概念,这将使你对SQLPlus有更深入的...

    Shell脚本连接oracle数据库的实现代码

    在IT领域,Shell脚本是一种常用的自动化工具,用于在Linux或Unix系统中执行一系列命令。在许多场景下,我们可能需要使用Shell脚本来连接Oracle数据库并执行SQL查询,例如进行数据备份、监控或定期报告。本文将详细...

    Java调用sqlplus执行定制的sql脚本

    Java作为广泛应用的编程语言,其丰富的库和API使得与数据库交互变得更加便捷。本文将深入探讨如何在Java中调用SQL*Plus来执行定制的SQL脚本。 首先,SQL*Plus是Oracle数据库提供的一个命令行工具,用于执行SQL语句...

    Unix Oracle Shell Scripting

    ### Unix Oracle Shell ...通过以上构建基础和实践示例的介绍,我们可以看到Unix Shell脚本在Oracle环境中的强大应用潜力。通过理解和运用这些基础知识,开发者可以构建出高效且功能丰富的脚本来满足不同的需求。

    shell在指定目录下批量执行sql脚本的实例

    在IT行业中,shell脚本是一种常用的自动化工具,尤其在服务器管理和数据库维护方面。本文将详细介绍如何使用shell脚本来在指定目录下批量执行SQL脚本,这对于数据库管理员来说是非常实用的技巧。 首先,让我们分析...

    Linux shell

    1. Linux Shell脚本编写,用于管理Oracle数据库启动和系统维护。 2. Oracle数据库在Linux Solaris环境下的自启动配置,包括环境变量设置、启动脚本编写和服务管理。 3. 使用Shell脚本进行文件的FTP传输,涉及网络...

    rlwrap sqlplus 上下文切换

    然而,对于习惯于使用交互式shell功能,如历史记录和上下文切换的用户来说,SQLPLUS的原始界面可能显得不够友好。这时,`rlwrap`(Readline wrapper)就派上用场了。 `rlwrap`是一个小工具,它可以为不支持Readline...

    sqlplus安装包(linux)

    - 结合shell脚本,可以自动化一系列数据库操作。 - Oracle还提供了高级版本的Instant Client,如`instantclient-sdk`,用于开发与Oracle数据库交互的应用程序。 综上所述,这个压缩包提供的Linux版SQLPlus安装包...

    rlwrap的安装使用 [SQLPlus上下键]

    例如,创建一个别名sqlplus,使得每次输入sqlplus时,实际上是在使用rlwrap来增强SQL*Plus的交互式体验。 总结来说,rlwrap的安装和使用可以显著提升在Linux环境下使用Oracle SQL*Plus的便捷性和效率。通过安装...

    Oracle_SQLPLUS常用命令 doc

    Oracle SQL*Plus 是一个功能强大的命令行工具,用于与 Oracle 数据库交互。它不仅支持标准 SQL 语句,还提供了许多实用的增强功能,如脚本执行、变量管理、格式化输出等。本文将详细介绍 SQL*Plus 的一些常见命令...

    execsqlscript

    在Linux或Unix环境中,shell脚本是一种强大的工具,可以让我们编写一系列命令来执行特定任务,如运行PL/SQL(Oracle数据库的编程语言)脚本。 首先,我们需要了解shell脚本的基础。Shell是操作系统提供的一个命令...

    instantclient-sqlplus-linux.x64-12.1.0.2.0.zip

    它主要包括了OCI(Oracle Call Interface)、OCCI(Oracle Call Interface for C++)、ODBC(Open Database Connectivity)和JDBC(Java Database Connectivity)等接口,这些接口使得开发者能够编写各种语言的应用...

    sqlplus翻页工具

    IO-Tty模块可以与Term::ReadLine::Gnu一起使用,提供一个友好的命令行交互界面,使得在SQLPlus中输入SQL语句时,可以享受到类似于Unix/Linux shell的便利性。 最后,`Term-ReadLine-Gnu-1.16.tar.gz`是一个Perl接口...

    cvs导入oracle

    在IT行业中,数据迁移是一项常见的任务,特别是在不同的数据库系统之间,如从版本控制系统CVS(Concurrent Versions System...了解CVS和Oracle的特性和交互方式,结合shell脚本的灵活性,可以高效地完成数据迁移工作。

    Oracle基础:程序中调用sqlplus的方式

    Here Document是一种在shell脚本中嵌入文本的方式,特别适用于向交互式命令提供预定义的输入。在调用sqlplus时,我们可以利用Here Document来传递一系列SQL命令,无需人工干预。例如,以下是如何在程序中使用Here ...

    ftp&linux下imp、exp

    3. Linux命令行操作,包括shell脚本编写和使用`sqlplus`与Oracle交互。 4. 数据安全和备份策略,如加密传输和验证备份的完整性。 以上内容详细解释了在Linux系统中通过FTP进行文件传输以及使用Oracle的`exp`和`imp`...

Global site tag (gtag.js) - Google Analytics