У меня есть сервер RHEL с Oracle 10G установленный. Я должен записать powershell сценарий, чтобы запросить мою базу данных и получить вывод. Я импортировал Шикарный-SSH модуль и могу соединиться со своим сервером RHEL и выполнить использование команд Invoke-SSHCommand
однако, я нуждаюсь в помощи в выполнении sqlplus команда с помощью моего Invoke-SSHCommand
. Обычно, мы можем достигнуть этого в жемчуге с помощью EOF, но, не можем найти любой способ получить это сделанное использование powershell.
код для Perl с помощью EOF:
$command="export ORACLE_SID=database
sqlplus -S user/password<< EOF
set feedback off
select username from dba_users;
EOF"
Мой код Powershell:
$command="export ORACLE_SID=database
sqlplus -S user/password<< EOF
set feedback off
select username from dba_users;
EOF"
$result = Invoke-SSHCommand -Index 0 -Command $command
Write-Output $result
Мой вывод для Powershell:
Host : XX.XX.XXX.XXX
Output :
ExitStatus : 127
Я предполагаю, символы EOF поняты под Powershell.
Кто-либо может помочь мне в преобразовании этого к powershell?. Я попробовал много путей, но все напрасно. Каждый раз я выполняю этот код, я получаю Код выхода: 127.
Та строка "EOF", которую вы там используете в Linux, не является и не является символом. Вы используете "здесь документ". EOF - это просто строка для perl, чтобы знать, где заканчивается Ваш документ. Я всегда использую что-то, что вряд ли можно найти в этом документе, например fInI.
Powershell. Да. Кошмар для нас, друзья.
Я не слишком много знаю о командах Linux. Вы можете попробовать
$UserName = "username"
$Password = "password"
$tnsalias = "tnsalias"
$SqlQuery =
@'
set feedback off
select username from dba_users;
exit
'@
Invoke-SSHCommand -Command "$SqlQuery |
sqlplus $username/$password@$tnsalias"