私はこれをしようとしています:
example.shから:
#!/bin/bash
sqlplus / as sysdba
select * from dual;
このシェルスクリプトを実行するとsqlplusユーティリティが開きますが、私が作成してから行を実行することはできません。 sqlplusを手動で終了すると、シェルだけが残りの行を実行し、「Select * from Dual」が有効なコマンドではないというエラーが発生します。
スクリプトにSQLテキストを実行させる方法以内にsqlplusのコンテキスト?
答え1
SQLスクリプトを実行するには、sqlplus
次のことが必要です。
#!/bin/bash
sqlplus / as sysdba <<EOF
select * from dual;
exit
EOF
あるいは、次のようにsqlコマンドをスクリプトに入れることもできます。
# cat a.sql
select * from dual;
exit
次のようにコマンドを実行します。
#!/bin/bash
sqlplus / as sysdba @a.sql