Comment exécuter des commandes sqlplus cmd.exe?
Mon sqlplus commande ne marche pas fini , c'attendre sur la ligne de mot de passe,il ne pas me donner d'erreur.
Ce code ne marche pas de problème quand j'ouvre la nouvelle fenêtre cmd et collez ce code ! tout est ok,
mais je ne peux pas fonctionner sur c# à l'aide de processus();
Mon sqlplus le texte de la commande:
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;
J'ai essayer ceci :
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();
De sortie:
D:\AppPath\bin\Debug>Défini ORACLE_SID=prod
D:\AppPath\bin\Debug>Défini ORACLE_HOME=C:\oracle\produit\10.2.0\appelée db_1
D:\AppPath\bin\Debug>sqlplus -s
D:\AppPath\bin\Debug>sys en tant que sysdba;
- Je ne me souviens pas exactement, mais c'est quelque chose comme cela dans le script:
sqlplus -s "sys@wherever/password as sysdba"
. Les guillemets sont nécessaires en raison de l'espace. - thx, j'ai trouvé la solution , de la syntaxe du nom d'utilisateur/pw@db
- Excellent - je suis content que vous l'avez trouvé! Les guillemets peuvent être un unix/linux chose. Notez que Oracle va accepter
username/pw@db
ouusername@db/pw
.
Vous devez vous connecter pour publier un commentaire.
Essayer
ou
Ce ne sera pas attendre pour un nom d'utilisateur et mot de passe mais que vous connecter avec les informations d'identification. Si elles sont mauvaises, sqlplus quitter immédiatement avec un message d'erreur. Si les informations d'identification sont correctes, sqlplus va exécuter toutes les commandes dans le fichier donné, l'un après l'autre.
Vous avez oublié d'ajouter le rôle de l'utilisateur de votre commande. Essayez d'utiliser cette un
par exemple: