我无法将要作为用户输入(密码被隐藏)的数据传递给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
语句,还是需要重写代码?