Comment passer des arguments à un script PL/SQL en ligne de commande avec SQLPLUS?
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 lancer sqlplus?exe pour que je puisse 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 pas trouvé D'exemple d'argument pour SQLPLUS. Je soupçonne que ce serait une méthode similaire d'utiliser la commande SQL*Plus "START"?
2 réponses
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 du script sur la ligne de commande. Dans le script, vous vous référerez aux paramètres en utilisant &1
,&2
etc.
update mytable set mycol = '&2' where myid = '&1';
qui se traduit par
update mytable set mycol = 'bar' where myid = 'foo';
si vous voulez enregistrer l'exécution de sqlplus, vous pouvez utiliser cette syntaxe:
sqlplus.exe MYUSER/mypassword@HOST030 @refreshDataOnOracle.sql foo bar >> log.log