Comment passer des arguments à un script PL/SQL en ligne de commande avec SQLPLUS? Je peux appeler mon script PL/SQL comme ça, mais le script nécessite des arguments pour qu'il réussisse. Comment puis-je exécuter sqlplus.exe pour pouvoir passer des arguments au script?
@ECHO off
// where Host030 is a tnsnames alias to a machine, port, and instance
sqlplus.exe MYUSER/mypassword@Host030 < refreshDataOnOracle.sql
pause
J'ai essayé de chercher la réponse, mais je n'ai trouvé aucun "exemple d'argument" n'importe où pour SQLPLUS. Je soupçonne que ce serait une méthode similaire d'utiliser la commande "START" de SQL * Plus?
Tout d'abord, vous devrez invoquer votre script comme ceci:
sqlplus.exe MYUSER/mypassword@Host030 @refreshDataOnOracle.sql foo bar
Au lieu de la redirection du système d'exploitation, vous utiliserez le symbole "@" pour indiquer le nom du fichier à exécuter. Vous fournirez également les paramètres de script sur la ligne de commande. Dans le script, vous vous référerez aux paramètres à l'aide de &1
, &2
etc.
update mytable set mycol = '&2' where myid = '&1';
qui se traduira par
update mytable set mycol = 'bar' where myid = 'foo';
Si vous souhaitez enregistrer l'exécution de sqlplus, vous pouvez utiliser cette syntaxe:
sqlplus.exe MYUSER/mypassword@Host030 @refreshDataOnOracle.sql foo bar >> log.log