SQL Plusを使用すると、次のように、コマンドラインから「@」演算子を使用してscriptを実行できます。
c:\>sqlplus username/password@databasename @"c:\my_script.sql"
しかし、まったく別のスクリプトファイルを使用せずに、同様の構文で単一コマンドを実行することは可能ですか?次のように:
c:\>sqlplus username/password@databasename @execute some_procedure
これは、2行の「.sql」ファイルを生成せずに、単にコマンドを実行するだけのバッチファイルを作成したいためです。
SQL * Plusにパイプすることで、SQLクエリを実行できます。
@echo select count(*) from table; | sqlplus username/password@database
与える
@echo execute some_procedure | sqlplus username/password@databasename
試してみてください。
このようなことを試しましたか?
sqlplus username/password@database < "EXECUTE some_proc /"
UNIXでできることのようです:
sqlplus username/password@database <<EOF
EXECUTE some_proc;
EXIT;
EOF
しかし、それと同等のウィンドウがどうなるかはわかりません。
NIX(AIX)の場合:
export Oracle_HOME=/oracleClient/app/Oracle/product/version
export DBUSER=fooUser
export DBPASSWD=fooPW
export DBNAME=fooSchema
echo "select * from someTable;" | $Oracle_HOME/bin/sqlplus $DBUSER/$DBPASSWD@$DBNAME
sqlplus user/password@sid < sqlfile.sql
これは、DOSコマンドラインからも機能します。この場合、ファイルsqlfile.sqlには実行したいSQLが含まれています。