`
zhzhiqun2005
  • 浏览: 227105 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux安装sqlplus及shell查询数据库

 
阅读更多
下载rpm文件,安装orcacle sqlplus
rpm –ivh oracle-instantclient-basic-10.2.0.4-1.i386.rpm
rpm –ivh oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm

安装完成后需要设置环境变量
LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.1/client/lib:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
SQLPATH=/usr/lib/oracle/10.2.0.1/client/lib:${SQLPATH}
export SQLPATH


利用shell脚本查询数据库示例:
#!/bin/bash

name=$1
passwd=$2
host=$3
port=$4
sid=$5
VALUE=`sqlplus -S $name/$passwd@$host:$port/$sid << !
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
select id from table_name;
exit
!`
#cataloguuid
echo $VALUE
if [ -n "$VALUE" ]; then
        echo "The rows is $VALUE"
        exit 0
else
        echo "There is no row"
fi

如果想要将查询结果重定向到外部文件查询语句为:
sqlplus -S $name/$passwd@$host:$port/$sid << ! > queryResult.out
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
select id from table_name;
exit
!`




转自:http://blog.chinaunix.net/uid/9124312.html
[oracle@hb shell_test]$ cat echo_time
#!/bin/sh

一.最简单的调用sqlplus
sqlplus -S "sys/unimas as sysdba" << !
select to_char(sysdate,'yyyy-mm-dd') today from dual;
exit;
!

[oracle@hb shell_test]$ ./echo_time

TODAY
----------
2011-03-21

-S 是silent mode,不输出类似“SQL>”,连接数据库,关闭数据库之类的信息。

eof可以是任何字符串 比如"laldf"那么当你输入单独一行laldf时"shell认为输入结束,但是必须表示块开始必须使用<<;
开始和结束要匹配这个符号“<<”后面的内容
举例子:
[oracle@hb shell_test]$ sqlplus -s "sys/unimas as sysdba" << abc
> select to_char(sysdate,'yyyy-mm-dd') today from dual;
> exit;
> abc

TODAY
----------
2011-03-21


二.sqlplus的结果传递给shell的方法一
[oracle@hb shell_test]$ cat test2.sh 
#!/bin/bash
VALUE=`sqlplus -S "test/unimas" << !
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
select to_char(sysdate,'yyyy-mm-dd') today from dual;
exit
!`
echo $VALUE
if [ -n "$VALUE" ]; then
	echo "The rows is $VALUE"
	exit 0
else
	echo "There is no row"
fi

三.sqlplus的结果传递给shell的方法二
[oracle@hb shell_test]$ cat test1.sh 
#!/bin/bash
sqlplus -S "test/unimas" << !
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
col coun new_value v_coun
select count(*) coun from lesson;
exit v_coun
!
VALUE="$?"
echo "show row:$VALUE"

col coun new_value v_coun v_coun为number类型。因为exit 只能返回数值类型。


四.把shell参数传递给sqlplus
#!/bin/bash
t_id="$1"
sqlplus -S "test/unimas" << !
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
select teachername from teacher where id=$t_id;
exit
!


五.sqlplus的结果存储在文件中
#!/bin/sh
sqlplus -S "test/unimas"<<EOF
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
spool spool_file
SELECT * from teacher;
spool off
exit;
EOF

分享到:
评论

相关推荐

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

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

    Linux下sqlplus退格、上翻键乱码工具

    在Linux环境中,SQL*Plus是Oracle数据库管理系统提供的一个命令行工具,用于交互式地执行SQL语句和PL/SQL块。然而,在某些情况下,用户可能会遇到一些输入问题,比如退格键不起作用或者上翻历史记录时显示乱码。这个...

    让linux 下sqlplus可以自由翻页的工具集

    在Linux环境中,SQLPLUS是Oracle数据库管理系统的命令行接口,用于执行SQL语句和PL/SQL块。然而,原生的SQLPLUS并不支持像在Unix或Windows终端中常见的自由翻页功能,这使得查看长查询结果时变得不便。为了改善这一...

    linux下远程定时备份oracle数据库

    这通常包括SSH(Secure Shell)用于远程连接,rsync或scp(Secure Copy)用于文件传输,以及可能的Oracle管理工具如sqlplus或expdp/impdp。如果提供的压缩包包含这些工具的安装包,应按照文档指示进行安装。例如,`...

    Linux中sqlplus方向键的安装配置

    在Linux环境中,SQL*Plus是Oracle数据库系统提供的一个命令行工具,用于交互式地执行SQL语句和PL/SQL块。然而,默认情况下,当我们在SQL*Plus中尝试使用方向键时,可能会遇到输出显示为不可读的ASCII字符,即所谓的...

    linux下批量执行oracle脚本的shell脚本

    首先,我们来看标题中的"linux下批量执行oracle脚本的shell脚本",这指的是在Linux操作系统中,通过编写shell脚本来自动化执行一系列针对Oracle数据库的SQL命令。Shell脚本是Linux系统中的一种强大的自动化工具,它...

    完美解决linux下sqlplus无法使用退格及方向键

    如果你需要进一步增强SQL*Plus的使用体验,可以考虑安装`sqlplus`的增强版,如`sqldeveloper`,它是一个图形化的数据库管理工具,提供了更丰富的功能和更友好的界面。 总的来说,通过使用`rlwrap`,你可以在Linux下...

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

    在Linux环境中,使用Shell脚本连接Oracle数据库是自动化任务中常见的一种方式,特别是当需要定期执行查询或数据处理时。本文将详细介绍如何通过Shell脚本实现这一目标,并讲解相关的关键知识点。 首先,确保你的...

    基于linux的Oracle数据库管理实训报告

    通过这个实训,学习者不仅掌握了Oracle在Linux环境下的安装步骤,还了解了如何利用shell脚本进行日常维护,为实际工作中高效、安全地管理Oracle数据库奠定了基础。这对于提升数据库管理员的技能和应对复杂企业环境的...

    sqlplus安装包(linux)

    这个压缩包包含了在Linux上安装SQLPlus所需的基本组件。 1. **Oracle Instant Client**: `instantclient-basiclite-linux.x64-21.8.0.0.0dbru.zip` 是Oracle Instant Client的基础版,它提供了连接到Oracle数据库的...

    instantclient-sqlplus-linux.x64-12.1.0.2.0.zip

    这个压缩包“instantclient-sqlplus-linux.x64-12.1.0.2.0.zip”包含了适用于64位Linux系统的Oracle Instant Client的SQL*Plus组件,版本号为12.1.0.2.0,是Oracle数据库开发者和管理员的重要工具。 首先,让我们...

    rlwrap软件 linux下解决sqlplus不能后退的软件

    总的来说,rlwrap通过增强Linux下的命令行交互体验,解决了像sqlplus这类程序在输入操作上的不便,提升了工作效率,是Linux系统管理员和数据库管理员必备的工具之一。通过熟练掌握rlwrap的使用,可以让你在处理...

    Linux shell

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

    Java代码备份(windows和Linux)服务器oracle数据库

    2. **执行备份脚本**:在Windows环境下,可以使用`Runtime.getRuntime().exec()`方法执行批处理文件,该文件中包含对`expdp`或`sqlplus`命令的调用来进行数据库导出。在Linux下,可以执行shell脚本,同样调用相应的...

    Oracle10g_Linux安装步骤

    Oracle 10g在Linux环境下的安装是一项技术性较强的工作,尤其对于新手来说,每一步都需要谨慎对待。以下是对Oracle10g在Linux系统(如Fedora11)上安装的详细步骤的解析: 1. **配置安装环境** 在安装Oracle数据库...

    Linux中Oracle数据库备份

    根据提供的信息,我们可以详细探讨在Linux环境中如何对Oracle数据库进行备份和恢复操作。这包括了手动备份和恢复的步骤以及如何通过脚本来自动化这一过程。 ### Linux环境下Oracle数据库备份 #### 1. 备份用户数据...

    从数据库中取变量传递给shell,生成环境变量

    从DB中取检索值传递给shell,生成环境变量 1. 编写myshellpara.sql 通过spool 执行一个SQL读取所要的值,结果保存在myshellvar_export.sh set feedback off; set heading off; set pagesize 0; set linesize 1000; ...

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

    在Oracle数据库管理中,经常需要频繁执行和修改SQL语句,因此,能够使用rlwrap来增强Linux下SQL*Plus的使用体验变得非常有意义。 rlwrap的安装过程分为两个主要部分:安装readline库和安装rlwrap程序本身。 首先,...

    Linux Oracle下sqlplus无法使用命令退格删除和历史记录的解决方法(使用rlwrap)

    在Linux环境下,Oracle数据库的管理工具sqlplus在交互式模式下使用时,可能存在无法使用键盘的退格键进行字符删除,以及无法查看和利用历史查询命令的问题。这给数据库管理员在执行SQL语句时带来了不便。然而,通过...

Global site tag (gtag.js) - Google Analytics