2013-09-04 21 views
21

Jak przekazywać argumenty do skryptu PL/SQL w wierszu poleceń za pomocą SQLPLUS? Mogę nazwać mój skrypt PL/SQL, tak jak to, ale skrypt wymaga argumentów, aby mógł odnieść sukces. Jak uruchomić program sqlplus.exe, aby móc przekazywać argumenty do skryptu?Jak przekazywać argumenty do skryptu PL/SQL w wierszu poleceń za pomocą SQLPLUS?

@ECHO off 
// where HOST030 is a tnsnames alias to a machine, port, and instance  
sqlplus.exe MYUSER/[email protected] < refreshDataOnOracle.sql  
pause 

Próbowałem wyszukać odpowiedź, ale nie mogłem znaleźć "przykładu argumentu" w dowolnym miejscu dla SQLPLUS. Podejrzewam, że byłaby to podobna metoda korzystania z polecenia SQL * Plus "START"?

Odpowiedz

32

Po pierwsze, trzeba będzie powołać swój skrypt tak:

sqlplus.exe MYUSER/[email protected] @refreshDataOnOracle.sql foo bar 

zamiast przekierowania OS będzie używany symbol „@”, aby wskazać nazwę pliku do wykonania. Dostarczysz również parametry skryptu w wierszu poleceń. W skrypcie można odnieść do parametrów za pomocą &1, &2 itp

update mytable set mycol = '&2' where myid = '&1'; 

co przełoży się

update mytable set mycol = 'bar' where myid = 'foo'; 
+0

Dzięki. To było to. Wygląda na to, że znak "@" jest aliasem dla "START". – djangofan

+1

W jaki sposób kierujesz dane wyjściowe do pliku dziennika? – ChadD

+2

@ChadD zobacz 'sqlplus' [' spool'] (http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve043.htm#i2683777) -polecenie. – user272735

1

Jeśli chcesz rejestrować przebieg sqlplus, można użyć następującej składni:

sqlplus.exe MYUSER/[email protected] @refreshDataOnOracle.sql foo bar >> log.log