shell脚本调用sql脚本
① 在shell脚本中使用 isql 执行SQL语句 查询sybase数据库中满足条件的记录条数,怎么把查询结果赋给变量
注意此处:
isql -U natuser -P zjtt@nat -S natdb <<END
如下供参考
·1 若要重定向到文件
isql -U natuser -P zjtt@nat -S natdb <<END >out.txt
即将查询结果重定向到out.txt文件中
·2若要输出至变量
isql -U natuser -P zjtt@nat -S natdb <<END |read xarg
·3若要循环输出至变量,可参照read方式类推
② shell脚本里执行多个sql语句问题
你没有理解输入重定向的概念。在你上面的代码中,mysql -uDDAP -p$2是包含在输入重定向范围内的,所以不会提示你输入密码的。
你的$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.CreateProcereAndFunction.SQL
\. /usr/src/DDAP-5.CreateData.SQL
EOF
③ linux下如何运行sql脚本
Linux运行sql脚本的具体操作步骤如下:
1、使用shell工具登陆到安装postgresql的服务器,切换到postgres用户,postgresql默认的操作用户,命令是:su - postgres,查看当前路径是/var/lib/psql,创建一个test.sql脚本文件,命令是:vim test.sql。
④ 求一个linux下的shell脚本执行mysql的sql语句,但老是 不成功....大神帮忙啊...
简单的看了一下
第一,第六行a= awk 'NR==2{print $1}' testsss.log 这里是否没有加``,另外shell下赋值在等号两侧是不允许有空格的,这个不知道是不是你贴在里面显示的错误
第二,$sqlw取出来的应该就已经是id>3的了,那么你在for循环里的判断if [ "$num" -gt "3" ]应该进不去,所以循环里是不会走到if里去的,你可以在if外面打印一下$num的值看看。
⑤ shell脚本调用mysql命令行执行sql脚本没日志
系统崩溃。shell脚本调用mysql命令行执行sql脚本没日志是由于系统崩溃导致的,检查系统崩溃原因,清除缓存后重新打开脚本即可,shell是一种为shell编写的脚本程序。
⑥ 关于shell 脚本中调用sqlplus 的问题
for tbl in `cat A.txt`
do
echo " spool test.log; @B/$tbl.sql; commit; spool off;" | sqlplus user/password@DB
done