Shell 与 SQLPLUS 的 交互 ---- 参数传递 返回值
来源:互联网 发布:软件系统可行性分析 编辑:程序博客网 时间:2024/05/22 13:20
unix上要执行oracle的sql,常见的是用shell脚本来调用sqlplus执行sql。
用这种方式,自然shell和sqlplus就有可能进行交互---shell传递参数进sqlplus,sqlplus将结果返回给shell。
从shell传参数进sqlplus是很简单的,可以在sql语句中用${shell变量名}的方式直接引用shell的变量.
eg,
transaction_sequence=$1
sqlplus -S stag_maint/stag_maint_ps@oraods << EOF
delete ODSDEFAULT_ODS_CONTROL WHERE TRANSACTION_SEQUENCE = ${transaction_sequence};
exit;
EOF
但如果我一个sql的执行结果需要返回给shell,那该怎么处理呢?shell中可没法直接来引用sqlplus里的变量。
经过研究,我发现以下两种方式可以达到这个目的。
方法1-----------
VALUE=`sqlplus -S stag_maint/stag_maint_ps@oraods << EOF
set heading off
set pagesize 0;
set feedback off;
set verify off;
set echo off;
select sysdate from dual;
exit;
END`
if [ -z "$VALUE" ]; then
echo "No rows returned from database"
exit 0
else
echo "Max Sequence Number: $VALUE"
fi
方法2-----------
sqlplus -S stag_maint/stag_maint_ps@oraods << EOF
set heading off feedback off pagesize 0 verify off echo off
col coun new_value v_coun
select 255 coun from dual;
exit v_coun
EOF
VALUE="$?"
echo "The number of rows is $VALUE."
不过方法2有个局限性,exit后面跟的数值只能在0-255之间。超过后会自动以255取余。
用这种方式,自然shell和sqlplus就有可能进行交互---shell传递参数进sqlplus,sqlplus将结果返回给shell。
从shell传参数进sqlplus是很简单的,可以在sql语句中用${shell变量名}的方式直接引用shell的变量.
eg,
transaction_sequence=$1
sqlplus -S stag_maint/stag_maint_ps@oraods << EOF
delete ODSDEFAULT_ODS_CONTROL WHERE TRANSACTION_SEQUENCE = ${transaction_sequence};
exit;
EOF
但如果我一个sql的执行结果需要返回给shell,那该怎么处理呢?shell中可没法直接来引用sqlplus里的变量。
经过研究,我发现以下两种方式可以达到这个目的。
方法1-----------
VALUE=`sqlplus -S stag_maint/stag_maint_ps@oraods << EOF
set heading off
set pagesize 0;
set feedback off;
set verify off;
set echo off;
select sysdate from dual;
exit;
END`
if [ -z "$VALUE" ]; then
echo "No rows returned from database"
exit 0
else
echo "Max Sequence Number: $VALUE"
fi
方法2-----------
sqlplus -S stag_maint/stag_maint_ps@oraods << EOF
set heading off feedback off pagesize 0 verify off echo off
col coun new_value v_coun
select 255 coun from dual;
exit v_coun
EOF
VALUE="$?"
echo "The number of rows is $VALUE."
不过方法2有个局限性,exit后面跟的数值只能在0-255之间。超过后会自动以255取余。
- Shell 与 SQLPLUS 的 交互 ---- 参数传递 返回值
- sqlplus传递参数shell
- shell 与 sqlplus 交互
- shell 与 sqlplus 交互
- shell 与 sqlplus 交互
- shell 与 sqlplus 交互
- linux shell 与sqlplus交互
- shell 和oracle sqlplus 参数传递
- C++与C#交互的参数传递
- 探讨c++函数中的参数传递与返回值(四) 浮点型值的参数传递与返回值
- 探讨c++函数中的参数传递与返回值(五) 复杂型值的参数传递与返回值
- shell函数的参数与返回值的例子
- JNI字符串参数传递与返回值
- 函数返回值与参数传递
- 1.4参数传递与返回值(1)
- 1.4参数传递与返回值(2)
- shell 参数,shell与Java 交互参数
- C函数参数传递与返回值传递
- (转)C++应用程序性能优化(书)内存管理
- Python Paste deploy
- 不同格式证书导入keystore方法(2)
- C#中获取程序当前路径 (转)
- 使用Haar特征进行人脸识别
- Shell 与 SQLPLUS 的 交互 ---- 参数传递 返回值
- 利用css添加页面锁,
- Android开发指南-窗口小部件(App Widgets)
- 策略模式与桥梁模式
- 软件测试岗位要求和知识面要求
- Six Rules of Unit Testing
- linux 磁盘分区
- 杭电ACM 1001,1040,1096
- Linux作业与进程管理