我有一个调用.sql文件的shell
sample.sh
...
sqlplus /nolog @sample.sql
....
sample.sql
....
accept selection Prompt "Enter username"
...
我需要从shell脚本自动执行脚本。 如何通过shell脚本自动化数据输入。
我试过以下
将参数传递给SQL
sqlplus /nolog @sample.sql <<EOF
abc
EOF
使用期望
/usr/bin/expect <<EOD 2>&1
set timeout 60
expect {
"Enter username "{
send "abc\r"
}}
expect eof
注意:我没有将参数传递给脚本。脚本会提示输入信息,用户需要动态输入。
找到解决方案,已在下面提到
答案 0 :(得分:1)
尝试使用:
sample.sh
var1="somevalues"
...
sqlplus -s user/pass@host <<EOF
@sample.sql $var1
EOF
...
sample.sql
select &1 from table;
您可以通过这种方式从Unix tp SQL传递值。
答案 1 :(得分:0)
<强>解决方案:强>
好的,我发现答案非常简单
sqlplus / as sysdba @sample.sql <<EOF
abc
EOF
问题是我没有以当前用户身份登录。
一旦脚本提示:
Enter username:
自动&#34; abc&#34;进入。