如何从Oracle中的heredoc将数据传递到INPUT HIDE?

时间:2019-06-07 08:04:18

标签: bash oracle sqlplus heredoc

我无法将要作为用户输入(密码被隐藏)的数据传递给oracle脚本。我的想法是使用预定义的用户输入来自动化开发部署。请参见以下示例:

test.sh:

sqlplus / as sysdba @$1 <<EOF
foo
bar
baz
EOF

test.sql:

SET DEFINE ON
ACCEPT STR1 PROMPT '1: '
ACCEPT STR2 PROMPT '2: '
ACCEPT STR3 PROMPT '3: '
PROMPT Got: &&STR1 &&STR2 &&STR3

$ ./test.sh test.sql

Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0

1: 2: 3: Got: foo bar baz

一切都很好,直到隐藏输入为止。

test_hide.sql:

SET DEFINE ON
ACCEPT STR1 PROMPT '1: '
ACCEPT STR2 HIDE PROMPT '2: '
ACCEPT STR3 PROMPT '3: '
PROMPT Got: &&STR1 &&STR2 &&STR3

$ ./test.sh test_hide.sql

Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0

1: 2:
3: Got: foo  bar

是否可以将数据传递到ACCEPT ... HIDE语句,还是需要重写代码?

0 个答案:

没有答案