- PR -

標準入力のシェルファイル内への記述

1
投稿者投稿内容
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2008-07-15 14:21
オラクルのsqlplusを実行するシェルファイルを作成しているのですが、
sqlplusへ入力するsqlを同じシェルファイル内に記述したいとおもっています。
シェルファイル名がtestとすると、

$ cat test
sqlplus user/pass@server !<
select * from dual;
select count(*) from dual;
exit
!

上記のように記述して、実行するシェルがshとすると

$ sh test

のように実行したいのです。

solaris2.6か7ぐらいのcsh,shかkshで作成したことがあるのですが、昔のことで
細かい部分が思い出せません。
手元にsolarisもないのでlinuxでやっているのですが、うまくいきません。

リストのなかの sqlplus の行の末尾の部分と、exitの行の次の最終行の記述
の2ヶ所、どのシェルで実行かがわかれば可能だとおもいます。

どなたかご存知ないでしょうか?

ターゲットはlinuxです。
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2008-07-15 14:55
こう?
コード:
$ cat test
sqlplus user/pass@server <<!
select * from dual;
select count(*) from dual;
exit
!


ヒアドキュメントですね。大抵のシェルで使えると思います。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2008-07-15 16:40
できました。
ありがとうございます。

$ sh test

SQL*Plus: Release 10.2.0.3.0 - Production on 火 7月 15 16:18:25 2008

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.



Oracle Database 10g Release 10.2.0.3.0 - Production
に接続されました。
SQL>
D
-
X

SQL>
COUNT(*)
----------
1

SQL> Oracle Database 10g Release 10.2.0.3.0 - Productionとの接続が切断されました。
1

スキルアップ/キャリアアップ(JOB@IT)