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"?

23
demandé sur djangofan 2013-09-04 22:08:33

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';
36
répondu mustaccio 2013-09-04 18:24:53

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
1
répondu PolyMorph 2016-09-20 15:46:43