Comment faire pour exécuter un script SQL Plus en PowerShell
Je suis en train d'essayer de vous connecter à l'Oracle DB à l'aide de PowerShell et exécuter un script appelé "C:\Users\Administrator\Desktop\oracle\OracleCleanTest.sql" Lorsque j'execute le PS rien ne se passe.
Voici ce que j'ai.
$adminLogon = "sys as sysdba/manager@ORCL"
$logon = "sqlplus\sql/manager@ORCL"
$mydata = Invoke-SqlPlus -inputfile "@C:\Users\Administrator\Desktop\oracle\OracleCleanTest.sql" $logon
J'ai aussi essayé ce.
$database = "ORCL";
$user = "sys as sysdba";
$pw = "manager";
sqlplus.exe -d $database -U $user -P $pw -I "@C:\Users\Administrator\Desktop\oracle\OracleCleanTest.sql"
J'ai essayé ce.
& 'C:\app\Administrator\product.2.0\client_1\BIN\sqlplus.exe' 'QE-JDBC-1/manager@ORCL sys as sysdba' '@C:\Users\Administrator\Desktop\oracle\OracleCleanTest.sql'
Je reçois le message d'erreur "& : Le module "sqlplus' n'a pas pu être chargé. Pour plus d'informations, exécutez 'Import-Module sqlplus'.
Au niveau de ligne:5 char:3
+ & $mydata Invoke-SqlPlus -inputfile "@C:\Users\Administrator\Desktop\oracle\Orac ...
+ ~~~~~~~
+ CategoryInfo : ObjectNotFound: (sqlplus\sql/manager@ORCL:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : CouldNotAutoLoadModule"
Hey, juste au cas où vous voulez toujours exécuter SQL*Plus sur PowerShell, jetez un oeil à ce Module: powershellgallery.com/packages/JS.OracleDatabase
OriginalL'auteur user3826435 | 2014-07-10
Vous devez vous connecter pour publier un commentaire.
- Je utiliser l'opérateur d'appel,
&
, comme Keith Hill a suggéré la question, Comment faire pour exécuter un fichier EXE en PowerShell avec les paramètres avec des espaces et des citations.J'ai placé le nom d'utilisateur, le mot de passe dans les citations en raison de l'espace.
Pour lancer un script, j'ai ajouter un autre paramètre comme suit:
Si vous recevez l'erreur ORA-12154 erreur, et vous savez que d'autres utilisateurs ont
les connexions établies (ce qui implique que l'écouteur de base de données est en cours d'exécution
correctement); je ne puis examiner si SQL*Plus pour trouver mon tnsname fichier.
Ma première tâche serait de voir si je peux tnsping comme suit dans Windows cmd.exe:
Il confirmera que la connexion peut (ou ne peut être établie).
Si elle ne peut pas, je voudrais vérifier pour voir si la variable d'environnement ORACLE_HOME,
est définie. SQL*Plus utilisés pour trouver tnsname.ora fichier.
Si elle ne l'est pas, j'ai l'exécution de cette instruction dans PowerShell (pour établir l'
cette variable d'environnement):
Ensuite, je voudrais réessayer pour tnsping (identifié ci-dessus).
Une fois réussie, je re-essayez d'exécuter le script en cours d'exécution de la commande ci-dessus.
Avez-vous mis votre variable d'environnement ORACLE_HOME? Pouvez-vous vous connecter à Windows cmd.exe mode (par exemple, pouvez-vous tnsping orcl))?
Dois-je laisser les "[de l'Environnement]::Lesetenvironmentvariable("ORACLE_HOME", "oracle_home_path" , "Utilisateur")" comme est, ou dois-je le changer? Si je dois changer ce que chacun doit-il être changé?
J'ai couru les modifications de l'environnement et redémarré et essayé de nouveau, je reçois toujours les mêmes résultats. Dois-je de gauche "l'Utilisateur" à l'identique, ou changé quelque chose? Je l'ai laissé à "l'Utilisateur".
Dans windows cmd.exe mode, pouvez-vous tnsping orcl)? Si vous ne pouvez pas, cela signifie que SQL*Plus est d'avoir des problèmes avec votre configuration. Avez-vous une entrée dans le tnsname.ora fichier pour orcl)?
OriginalL'auteur Patrick Bacon
Dans votre invite de commande Windows PowerShell le code ne nécessite pas de réglage variable ou quelque chose de compliqué. Faites simplement ceci:
sqlplus ElBankoUser\SupaSecretyPass "@C:\Users\ElBankoUser\Documents\MaFancySckrp.sql"
OriginalL'auteur Paul
J'utilise ceci:
OriginalL'auteur Vik
Vous pouvez utiliser .NET Oracle de la bibliothèque DLL, assurez-vous d'avoir le fichier DLL requis en vertu de la
lib
dossierOriginalL'auteur ostati