Oracle 将查询从bash发送到sqlplus
我有一个bash脚本,它必须连接到sqlplus并执行查询或过程 我该怎么做 这不管用Oracle 将查询从bash发送到sqlplus,oracle,bash,stored-procedures,sqlplus,Oracle,Bash,Stored Procedures,Sqlplus,我有一个bash脚本,它必须连接到sqlplus并执行查询或过程 我该怎么做 这不管用 function log_to_sqlplus() { if [ "$1" != "" ] && [ "$2" != "" ]; then sqlplus '$1/$2' <<EOF BEGIN DBTEST.SP_RUN(); END; / EOF fi } 函数
function log_to_sqlplus() {
if [ "$1" != "" ] && [ "$2" != "" ];
then
sqlplus '$1/$2' <<EOF
BEGIN
DBTEST.SP_RUN();
END; /
EOF
fi
}
函数日志到sqlplus(){
如果[“$1”!=”]&&[“$2”!=”];
然后
sqlplus“$1/$2”您不应该将凭据括在单引号中,这将阻止登录成功,即使参数看起来正确。(我建议您可能还希望使用-s和-l标志)
您还需要斜杠(/
)单独在一行上,斜杠通常显示在行的开头,尽管在这里它似乎并不重要:
function log_to_sqlplus() {
if [ "$1" != "" ] && [ "$2" != "" ];
then
sqlplus -s -l $1/$2 <<EOF
BEGIN
DBTEST.SP_RUN();
END;
/
EOF
fi
}
“不起作用”是什么意思?发生了什么?这正是你想要运行的还是你已经更改了发布的格式?@AlexPoole现在请检查一下
#!/bin/bash
function log_to_sqlplus() {
if [ "$1" != "" ] && [ "$2" != "" ];
then
sqlplus -l -s $1/$2 <<EOF
BEGIN
-- DBTEST.SP_RUN();
dbms_stats.gather_schema_stats(user);
END;
/
EOF
fi
}
log_to_sqlplus my_username my_password
PL/SQL procedure successfully completed.