Я не могу передать данные, предназначенные для ввода пользователем (пароли скрыты), в сценарии оракула. Моя идея состояла в том, чтобы автоматизировать развертывание разработки с использованием предопределенного пользовательского ввода. Пожалуйста, смотрите следующий пример:
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
или мне нужно будет переписать код?