linux sqlplus 查询数据,Linux安装sqlplus及shell查询数据库
发布日期:2021-06-24 16:20:48 浏览次数:2 分类:技术文章

本文共 2528 字,大约阅读时间需要 8 分钟。

下载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"<

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

转载地址:https://blog.csdn.net/weixin_33780516/article/details/116863582 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:kali+linux+32+bit+vm,在 VirtualBox 上安装 Kali Linux(使用 Kali Linux 32-bit (PAE) VirtualBox 安装包)...
下一篇:linux 内核 实战,实战linux内核

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月20日 07时16分36秒