私は自動化しようとしているSQLスクリプトをいくつか持っています。過去に私はSQL * Plusを使用し、bashスクリプトから手動でsqlplusバイナリを呼び出しました。bashスクリプトからSQLをどのように実行しますか?
しかし、DBに接続してbashスクリプトの中からスクリプトを呼び出す方法があるかどうかを調べるために、date
を挿入してクエリを過去の特定の日数。
私は自動化しようとしているSQLスクリプトをいくつか持っています。過去に私はSQL * Plusを使用し、bashスクリプトから手動でsqlplusバイナリを呼び出しました。bashスクリプトからSQLをどのように実行しますか?
しかし、DBに接続してbashスクリプトの中からスクリプトを呼び出す方法があるかどうかを調べるために、date
を挿入してクエリを過去の特定の日数。
少し混乱します。 bashスクリプトからsqlplusを呼び出すことができるはずです。これは、あなたのbashスクリプト内で次を実行するあなたの最初の文
てみて何をしていたことがあります
#!/bin/bash
echo Start Executing SQL commands
sqlplus <user>/<password> @file-with-sql-1.sql
sqlplus <user>/<password> @file-with-sql-2.sql
あなたのスクリプトにデータを渡すことができるようにしたい場合は、でSQLPlusを介して、それを行うことができますスクリプトに引数を渡す:ファイルと-SQL-1.SQL
select * from users where username='&1';
次いで、CHの
内容ANGEは、bashスクリプトはbashのよう
#!/bin/bash
MY_USER=bob
sqlplus <user>/<password> @file-with-sql-1.sql $MY_USER
は、SQLデータベース接続が組み込まれていない値を渡しSQLPLUS呼び出すために...あなたは、サードパーティのツールのいくつかの並べ替えを使用する必要があります。ここで
は、MySQLのクエリを実行する簡単な方法は、たぶん、あなたはSQLPLUSにパイプSQLクエリをすることができます
mysql -u [database_username] -p [database_password] -D [database_name] -e "SELECT * FROM [table_name]"
OPは、Oracleを使用していること_is_。 –
これはオラクルではありません。 –
bashシェルです。これは、MySQLのために働く:
echo "SELECT * FROM table" | mysql --user=username database
はまた同じことを行うために、「ここに文書を」使用することができます。
VARIABLE=SOMEVALUE
sqlplus connectioninfo << HERE
start file1.sql
start file2.sql $VARIABLE
quit
HERE
SQLPLUSは、「サードパーティのツール」 – michael