web-dev-qa-db-ja.com

sql plusを使用してコマンドラインから単一のコマンドを発行するにはどうすればよいですか?

SQL Plusを使用すると、次のように、コマンドラインから「@」演算子を使用してscriptを実行できます。

c:\>sqlplus username/password@databasename @"c:\my_script.sql"

しかし、まったく別のスクリプトファイルを使用せずに、同様の構文で単一コマンドを実行することは可能ですか?次のように:

c:\>sqlplus username/password@databasename @execute some_procedure

これは、2行の「.sql」ファイルを生成せずに、単にコマンドを実行するだけのバッチファイルを作成したいためです。

44
JosephStyons

SQL * Plusにパイプすることで、SQLクエリを実行できます。

@echo select count(*) from table; | sqlplus username/password@database

与える

@echo execute some_procedure | sqlplus username/password@databasename

試してみてください。

67
Patrick Cuff

このようなことを試しましたか?

sqlplus username/password@database < "EXECUTE some_proc /"

UNIXでできることのようです:

sqlplus username/password@database <<EOF
EXECUTE some_proc;
EXIT;
EOF

しかし、それと同等のウィンドウがどうなるかはわかりません。

15
Eric Petroelje

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
9
javaPlease42
sqlplus user/password@sid < sqlfile.sql

これは、DOSコマンドラインからも機能します。この場合、ファイルsqlfile.sqlには実行したいSQLが含まれています。

8
tale852150