python调用sqlplus_Unix/Linux中shell调用sqlplus的方式

本文详细介绍了在Unix/Linux环境下,如何通过shell脚本调用sqlplus执行SQL命令,包括简单调用、返回执行结果给shell、传递参数、输入密码以及从文件读取密码的方法,并给出了具体示例。
摘要由CSDN通过智能技术生成

Unix/Linux下,shell脚本调用sqlplus的几种方式介绍:

一、最简单的shell调用sqlplus

#!/bin/bash

sqlplus -S /nolog > sqlplus.log <

conn scott/scott

select sysdate from dual;

quit

EOF

二、sqlplus返回执行结果给shell

方法一:

#!/bin/bash

biz_date=`sqlplus -S scott/scott <

set heading off

set pagesize 0;

set feedback off;

set verify off;

set echo off;

select sysdate from dual;

exit

EOF`

echo $biz_date

(注意:等号两侧不能有空格.)

[oracle@toughhou shell]$ vi sqlplus.sh

21-NOV-13

方法二:

注意sqlplus段使用 col .. new_value .. 定义了变量并带参数exit, 然后自动赋给了shell的$?

#!/bin/bash

sqlplus -S scott/scott <

set heading off

set pagesize 0;

set feedback off;

set verify off;

set echo off;

col biz_date new_value v_biz_date

select sysdate biz_date from dual;

exit v_biz_date

EOF

biz_date="$?"

[oracle@toughhou shell]$ vi sqlplus.sh

sqlplus.sh: line 11: warning: here-document at line 1 delimited by end-of-file (wanted `EOF')

21-NOV-13

这里出warning是因为EOF后面有空格。(注意:结尾出的EOF后面不能有任何字符)

去掉空格后结果如下:

[oracle@toughhou shell]$ vi sqlplus.sh

22-NOV-13

三、shell程序传递参数给sqlplus

sqlplus里可以直接使用, 赋变量的等号两侧不能有空格不能有空格.

接收到的变量不能加引号。“select sysdate from $tb;"不能写成"select sysdate from '$tb';"

#!/bin/bash

tb=dual

sqlplus -S scott/scott <

set heading off

set pagesize 0;

set feedback off;

set verify off;

set echo off;

select sysdate from $tb;

exit

EOF

[oracle@toughhou shell]$ sh sqlplus.sh

22-NOV-13

四、为了安全要求每次执行shell都手工输入密码

#!/bin/bash

echo -n "Enter db password for scott: "

read pwd

sqlplus -S scott/$pwd <

set heading off

set pagesize 0;

set feedback off;

set verify off;

set echo off;

select sysdate from dual;

exit

EOF

[oracle@toughhou shell]$ sh sqlplus.sh

Enter db password for scott: scott

22-NOV-13

五、为了安全从文件读取密码

对密码文件设置权限, 只有用户自己才能读写.

[oracle@toughhou shell]$ echo scott > scott.pwd

[oracle@toughhou shell]$ chmod 500 soctt.pwd

[oracle@toughhou shell]$ chmod 500 scott.pwd

[oracle@toughhou shell]$ ls -l scott.pwd

-r-x------ 1 oracle oinstall 6 Nov 22 00:17 scott.pwd

#!/bin/bash

pwd=`cat scott.pwd`

sqlplus -S scott/$pwd <

set heading off

set pagesize 0;

set feedback off;

set verify off;

set echo off;

select sysdate from dual;

exit

EOF

linux中shell变量&dollar;&num;&comma;&dollar;&commat;&comma;&dollar;0&comma;&dollar;1&comma;&dollar;2的含义

linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

Linux中Shell

Linux中Shell Shell是什么 ​ Shell是一个命令行解释器,为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,可以用Shell来启动.挂起.停止.编写一些程序. S ...

linux中Shell标准输出错误 &gt&semi;&sol;dev&sol;null 2&gt&semi;&amp&semi;1 分析【转】

Shell中可能经常能看到:>/dev/null  2>&1 eg:sudo kill -9 `ps -elf |grep -v grep|grep $1|awk '{print ...

&lbrack;转&rsqb;unix&sol;linux中的dup&lpar;&rpar;系统调用

[转]unix/linux中的dup()系统调用    在linux纷繁复杂的内核代码中,sys_dup()的代码也许称得上是最简单的之一了,但是就是这么一个简单的系统调用,却成就了unix/linu ...

linux中shell变量&dollar;&num;&comma;&dollar;&commat;&comma;&dollar;0&comma;&dollar;1&comma;&dollar;2的含义解释

linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

ASP&period;net 中手工调用WS&lpar;POST方式&rpar;

ASP.net 中手工调用WS(POST方式)核心代码:string strUrl="http://localhost:21695/service1.asmx/getmythmod&quot ...

Linux中shell变量&dollar;0&comma;&dollar;&quest;等含义

linux中shell变量$#,$@,$0,$1,$2的基本含义: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

随机推荐

mysql&colon;SQL语句操作数据库中表和字段的COMMENT值

转载:http://blog.163.com/inflexible_simple/blog/static/167694684201182601221758/ 参考文档不太给力啊,表注释和字段注释的资料 ...

Java开发中经典的小实例-&lpar;while&lpar;参数&rpar;&lbrace;&rcub;&rpar;

import java.util.Scanner;public class Test_while {    public static void main(String[] args) {       ...

工具系列之Sublime Text 3 使用总结

1.Sublime Text 2/3如何支持中文GBK编码(解决中文乱码)  Sublime Text默认是只支持UTF8的编码,所以有些时候,当我们打开GBK文件时候,文件内会出先部分的乱码,如下图 ...

最新首发Eclipse&plus;CDT&plus;android-ndk写纯c&plus;&plus;安卓应用(附openGL Es)

首先下载eclipse和cdt.我的版本依次是:Version: Indigo Service Release 2和Version: 1.0.0.201202111925,再下载windows的ndk ...

ASP&period;NET MVC 项目直接预览PDF文件

背景及需求 项目使用的是MVC4框架,其中有一个功能是根据设置生成PDF文件,并在点击时直接预览. 实现过程 1.第一版实现代码: HTML内容 @{ Layout = null; }

android 运行时异常捕获

1,将运行时异常捕获并存到手机SD卡上 可以直接使用logcat 命令Runtime.getRuntime().exec("logcat -f "+ file.getAbsolut ...

linux:你不知道的echo

linux的echo命令功能是在显示器上显示一段文字.一般格式为: echo [ -n ] 字符串.参数n是指行尾不换行 echo会将输入的字符串送往标准输出.输出的字符串间以空白字符隔开, 并在最后 ...

《OdooERP应用与开发基础》试读:第一章-Odoo概述

文/开源智造联合创始人老杨 本文来自的试读章节.书籍尚未出版,请勿转载.欢迎您反馈阅读意见. Odoo是什么   Odoo,以前叫OpenERP,是比利时O ...

Java开发笔记(二十七)数值包装类型

方法的出现缘起优化代码结构,但它的意义并不局限于此,正因为有了方法定义,编程语言才更像一门能解决实际问题的工具,而不仅仅是只能用于加减乘除的计算器.在数学的发展过程中,为了表示四则运算,人们创造了加减 ...

MySQL基本简单操作01

MySQL基本简单操作 学会了安装Docker,那么就将它利用起来.(/滑稽脸) 之前想学习Mysql(Windows下配置真麻烦),学会了Docker就方便了,直接使用Docker创建一个Mysql ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值