Как передать данные в INPUT HIDE от heredoc в Oracle? - PullRequest
1 голос
/ 07 июня 2019

Я не могу передать данные, предназначенные для ввода пользователем (пароли скрыты), в сценарии оракула. Моя идея состояла в том, чтобы автоматизировать развертывание разработки с использованием предопределенного пользовательского ввода. Пожалуйста, смотрите следующий пример:

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 или мне нужно будет переписать код?

...