Моя команда sqlplus не заканчивается, она ждет строки с паролем, это не дает мне ошибку.Как выполнить команды sqlplus на cmd.exe?
Этот код не вызывает проблем, когда я открываю новое окно cmd и вставляю этот код! все нормально, , но я не могу работать на C#, используя process();
Моя команда SQLPLUS текст:
Set ORACLE_SID=prod
Set ORACLE_HOME=C:\oracle\product\10.2.0\db_1
sqlplus -s
sys as sysdba
password
shutdown immediate
startup mount
recover standby database until cancel;
cancel
alter database open read only;
exit;
exit;
Я стараюсь это:
C:\cmd.cmd
*********************************************
Set ORACLE_SID=prod
Set ORACLE_HOME=C:\oracle\product\10.2.0\db_1
sqlplus -s
sys as sysdba
manager
select * from dual;
exit;
*********************************************
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\cmd.cmd";
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
process = Process.Start(startInfo);
//output
string BatProcessResult = process.StandardOutput.ReadToEnd();
Выход:
D: \ AppPath \ Bin \ Debug> Set ORACLE_SID = прод
D: \ AppPath \ bin \ Debug> Установить ORACLE_HOME = C: \ oracle \ product \ 10.2.0 \ db_1
D: \ AppPath \ Bin \ Debug> SQLPLUS -s
D: \ AppPath \ Bin \ Debug> SYS как SYSDBA;
Я не помню точно, но это что-то вроде этого в скрипте: 'SQLPLUS -s "SYS @, где/пароль, как SYSDBA"' , Двойные кавычки нужны из-за пробелов. –
thx я нашел решение, синтаксис имя пользователя/pw @ db – Mennan
Отлично - я рад, что вы его нашли! Двойными кавычками могут быть unix/linux. Обратите внимание, что Oracle будет принимать 'username/pw @ db' или' username @ db/pw'. –