我想编写一个脚本,:如何使用SQLPLUS查询的输出提示用户输入更多
- 提示您输入一个名称
- 在sqlplus的数据库,以查看是否一个
select count
它存在 - 最终用户查看查询结果并提示询问用户他们是否想运行语句2
- 如果您说是,则运行statement2。如果没有脚本被杀害
我遇到的问题是第一次查询运行后,检查它是否存在,我不知道如何添加一个提示,询问您是否要插入到数据库
这里是我到目前为止的代码:
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。
echo "Please enter last name: 'input;"
read input
Statement2="INSERT INTO users VALUES ('"$input"');"
output1=$($sqlplus -s User/[email protected] <<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/[email protected] << Eossql
set autocommit on
set head off
$Statement2
quit;
Eossql
else
echo "Not creating user"
fi
您将需要问这个问题,然后有一个if语句处理响应。 –