gpt4 book ai didi

oracle - 将参数传递给包含来自 Shell 脚本的 ACCEPT 的 SQL*Plus 脚本

转载 作者:行者123 更新时间:2023-12-02 03:31:06 25 4
gpt4 key购买 nike

我正在尝试从 Korn shell 脚本调用 SQL*Plus (10g) 脚本。

我不允许修改 SQL*Plus 脚本,它有一个 SQL*Plus ACCEPT命令在其中。

我正在尝试通过 Korn Shell 脚本将此 ACCEPT 命令变量(7788 进一步如下)的特定参数传递给 SQL*Plus 脚本。

这是 SQL*Plus 脚本的精简版本,oracle_code.sql :

SET VERIFY OFF
ACCEPT abc PROMPT "Enter an empno:"
SELECT e.ename
FROM emp e
WHERE TO_CHAR(e.empno) = '&abc'
;

这是我尝试使用 Korn shell 脚本 ( wrapping_shell_script.sh ) 进行调用:
#!/usr/bin/ksh
# wrapping_shell_script.sh
# Expecting one and exactly one parameter to be passed, the password for SCOTT
if [ $# -ne 1 ]
then
echo "USAGE: wrapping_shell_script.sh <SCOTT_Password>"
exit 1
fi

passwd="$1"

echo `date`

sqlplus -s scott/${passwd} @oracle_code.sql << EOF1
7788
EOF1

这是我从 Korn shell 命令行运行 shell 脚本时的样子:
$ wrapping_shell_script.sh tiger
Fri Oct 31 16:23:20 CDT 2014
Enter an empno:
no rows selected

$
7788我试图传递的值没有进入 SQL*Plus 脚本的 abc词法参数。

如何更改我的 Korn shell 脚本,以便传入我指定的值,并执行调用的 SQL*Plus 脚本?

谢谢。

最佳答案

发现问题后总是很容易,但是创建了 VERIFY 选项来调试变量设置。鉴于您无法更改调用 SQL 文件,但您可以更改 (g)login.sql,您可以设置:

set verify on

但是,只找到其他选项却出人意料地设置了。

关于oracle - 将参数传递给包含来自 Shell 脚本的 ACCEPT 的 SQL*Plus 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26706862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com