Im пытается запустить вызов скрипта Interface.sh, где цикл for принимает значения из файла и запускает его через серию команд sql, используя документ здесь.sql in for loop не работает
Файл (так называемый InterfaceSymbols.ASIA) содержит 3 строки текста.
Ниже приведено то, что у меня есть.
rsh $MACHINE
cd /srg/data/Interface
for line in `cat /srg/data/Interface/InterfaceSymbols.ASIA`
do
sql <<EOF
select s.symbol, i.inventory
from
symbol s,
inventory i,
portfolio_inventory pi
WHERE
s.portfolio = pi.portfolio AND
pi.inventory = i.inventory
and s.symbol = "$line";
exit
EOF
done
Когда я запускаю сценарий оболочки, он не работает, как я ожидаю.
он тогда rsh переходит к $ MACHINE, а затем ничего не делает. когда я выхожу из машины, он возвращает:
Inter.sh: line 16: sql: command not found
Inter.sh: line 16: sql: command not found
Inter.sh: line 16: sql: command not found
Что я делаю неправильно? Я вижу, что он пытается запустить его три раза (что эквивалентно количеству значений в файле).
Он не распознает команду SQL, попробуйте дать ему полный путь – OTTA
Ok, который работал, но теперь я получаю: 'Введите имя-пользователя: SP2-0306: Invalid option.' ' Использование: CONN [ ECT] [{вход |/| прокси} [AS {SYSDBA | SYSOPER | SYSASM}] [издание = значение]] '' где :: = [/ ] [@] :: = [] [/ ] [@] ' ' Введите имя пользователя: Введите пароль: ' ' ОШИБКА: ' ' ORA-12545: соединение не выполнено, потому что целевой хост или объект не существует' Как мне пройти регистрацию и пароль? –
nrs90
Теперь он знает, какой sql вам нужно будет сообщить, с каким db он подключается и снабжает его идентификатором пользователя и паролем. Другими словами, вам нужно проверить синтаксис вашего вызова на sql. – OTTA