执行SHELL脚本,传入参数,参数应该被里边的sql所用,请问怎么写

比如 执行 upload.sh XXXXXX XXXXX是传入参数
怎么在下列脚本中传入参数 被*******(一条SQL语句)所用
脚本
sqlplus -s ac/ca@ca<<EOF
set head off;
set feedback off;
set linesize 5000;
set newpage none;
set trims on;
set term off;
set array 5000;
spool etl_inc_de_007009.txt;
****************
spool off;
EOF
这个问题还得补充下,传入-1 生成一个SQL文件 SQL内容
select dept_id,dept_name from department
解析以上文件 根据dept_id,dept_name 做条件和查询列,和另个一个表income,和一起
生成一个明晰的SQL ,执行这个SQL文件,进行导出

第1个回答  2011-04-08
变量在sh中用$1,$2,$3... 顺序表示传入的参数。
sql写法:
select dept_id,dept_name from department
where dept_id=$1本回答被网友采纳
第2个回答  2011-04-08
echo "please input var_name:"
while read var_name
第3个回答  2011-04-07
上边的脚本是在shell中,还是单独一个SQL文件啊追问

都行,我就是想做一个SHELL脚本,输入-1 查询一个表比如A,生成一行一行的数据形成的文件,(2)然后解析这个文件,她的数据用做条件和别的SQL生成一个新的SQL文件,然后用这个SQL
进行数据导出

追答

在shell中的话,举个例子吧
if [ “$1” = "-1" ]; then
SQL="select * from t_a where c_a='test';"
fi
。。。
spool etl_inc_de_007009.txt;
$SQL
spool off;
。。。
这样就可以了。以上是在KSHELL下执行的code
不知道是不是你要的情况

本回答被提问者采纳

shell脚本里执行多个sql语句问题
你的$1 和$2也没有定义,可以参考如下写法:!\/bin\/sh read -p "please input root password" pwd mysql -uroot -p$pwd << EOF \\. \/usr\/src\/DDAP-1.CreateUser.SQL \\. \/usr\/src\/DDAP-2.CreateDatabase.SQL \\. \/usr\/src\/DDAP-3.CreateTable.SQL \\. \/usr\/src\/DDAP-4.CreateProc...

如何在shell 中将sql语句执行结果写入日志中
SELECT * FROM 表名称 注释:SQL 语句对大小写不敏感。SELECT 等效于 select。SQL SELECT 实例 如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句:SELECT LastName,FirstName FROM Persons ...

想写个shell脚本,获取到SQL中查询到的字段的值,赋给shell脚本中定义的...
while read enabledate do __aa=$enabledate;done echo "$__aa";

如何写在Linux下写Shell脚本控制向mysql数据库里插数据啊?~~~着急...
dbh = DBI->connect ($connection_string, $userid, $username);sth=$dbh->prepare(insert into table(...) values(...));sth->execute sleep (300);}

怎么在shell脚本里面获得sqlplus执行的结果
备注:getDbUserByTableName $TableName是获取表在哪个数据库的。你可以直接把$DbUSER换成tns串或者别名即可。sqlplus连接数据库的方法#需要传入两个参数,第一个是表名,一个是需要执行的sql语句,一条语句作为一行sqlBossDb(){TableName=$1SqlStr=$2getDbUserByTableName $TableNameDbUSER=`cat db...

LINUX下shell脚本如何执行 sql脚本 到DB2数据库?
1、在gedit中编写.sh格式的文件,保存为a.sh。2、在终端调用脚本,定位到目录,然后输入。3、编写的if\/else如下:if和 ; 之间的代码?ls -l a.sh是用来判断当前的目录下是否存在a.sh这个文件。if和else的基本格式如下所示。4、在终端调用的结果如下,可以看到输出了。5、再看一个if\/else脚本...

如何在mysql shell命令中执行sql命令行
1. import_table建立 3306 端口的新连接我这里切换为 python 模式清空掉示例表 Ytt.tl1import_table 有两个参数,第一个参数定义导入文件的路径,第二个定义相关选项,比如导入的格式,并发的数量等。定义文件路径(参数1)定义选项(参数2)执行导入:只花了不到 17 秒,比传统 mysqlimport 快了不少...

在shell中执行满足sql查询条件的记录 已设shell有关时间的变量 例如:#...
today=`date +%Y%m%d`weekday=`date +%w`一年前的今天:bdate=`date -d "1 year ago" +%Y%m%d`因为星期是以周日,周一。。。周六,数字大小为0,1,2,3.。。6,所以你写的一周时间范围有问题 一周前时间:oneweekday=`date -d "1 week ago" +%Y%m%d`至于具体的周期,你可以用不同...

如何在shell中调SQLPLUS 执行SQL语句
sqlplus命令本身可以卸载shell脚本中,只要环境变量配置了相关的命令路径就可以。然后编写sql脚本,然后利用sqlplus 用户名\/密码@XXX @sql命令文件.sql就可以了。如果害怕两个@有冲突,那么就设置一个参数=用户名\/密码@XXX 然后调用参数,就可以了。如果还有其他需求,那么就利用sqlplus的set参数,来达到某些...

在shell脚本执行sql语句为什么会报错
shell执行sql语句出错一般两种原因。1、一种是语句本身错误,这个你就需要仔细检查语句了。2、语句结尾需要用英文逗号结束,否则是执行不过去的。综上所述:仔细检查自己所写的sql语句。

相似回答