How to use output of SqlPlus query to prompt user for more input
本问题已经有最佳答案,请猛点这里访问。
我正在写一个脚本:
我遇到的问题是,在运行第一个查询以检查它是否存在之后,我不确定如何添加提示,询问是否要插入数据库
以下是迄今为止我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 | echo"Please enter last name: 'input;" read input statement1="select count(*) as count from users where fname = '"$input"'" statement2="INSERT INTO users VALUES ('"$input"'); $ORACLE_HOME******************************** $statement1 / quit; Eossql |
我无法理解的部分是,在执行语句1之后,我希望系统询问是否应该执行语句2。有什么建议吗?
谢谢!
编辑:这是我编辑的代码,感谢cdahn的建议。这个解决方案是可行的,但我想知道是否有一种更清洁的方法来实现这一点,而不是两次连接到sqlplus。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | echo"Please enter last name: 'input;" read input Statement2="INSERT INTO users VALUES ('"$input"');" output1=$($sqlplus -s User/Pass@connection <<EOF set head off select count (*) from users where fname = '$input'; EXIT; EOF ) read -p"User $input appears $output1 times. Create user? [Y/n]" answer if [ -z"$answer" -o"$answer" =="y" -o"$answer" =="Y" ] then $sqlplus -s User/Pass@connection << Eossql set autocommit on set head off $Statement2 quit; Eossql else echo"Not creating user" fi |
您需要添加对
一旦你有了输出,你就可以使用一个条件,就像拉曼赛洛帕尔建议的那样。类似:
1 2 3 4 5 6 7 8 9 | output1="`sqlplus $statement1`" read -p"User $input appears $output1 times. Create user? [Y/n]" answer if [ -z"$answer" -o"$answer" =="y" -o"$answer" =="Y" ] then sqlplus $statement2 else echo"Not creating user." fi |