ご無沙汰しております。
業務でUNIX系OSを使用することになったので、教えていただきたいです。
Cシェルにて、packageを呼出し、マスタ更新のシェルを作成しようとしております。
以下作成したCシェル
#!/bin/csh
sqlplus ユーザID/パスワード@ORACLE_SID
declare
変数定義
begin
package名.プロシージャ名(引数1, 2, 3);
end;
/
exit
-- ここまで--
上記のシェルを/export/home/oracle/にtest.shと言う名前で作成しており、
/export/home/oracle/test.shにて、実行した結果sqlplusは起動出来ましたが、
プロシージャまで実行してくれないです。
エラーも何も出ているわけではなく、接続に成功後、SQL>と出たままとまってしまいます。
その際、exitと打つと、packageを呼び出そうとしているみたいです・・・。(もちろんここではエラーになります。)
Cシェルでこのようなことを実装できる方法をご存知の方、ご教授お願い致します。
ISMSの関係上、業務時間にネットを見ることに制限をかけられ、困ってる次第です。
環境は
solaris10
oracle10g
です。
No.1ベストアンサー
- 回答日時:
#!/bin/csh
sqlplus ユーザID/パスワード@ORACLE_SID <<EOF1
declare
変数定義
begin
package名.プロシージャ名(引数1, 2, 3);
end;
/
exit
EOF1
としてみてください
遅くなり、申し訳ないです。
お蔭様で解決できました!
EOF1当たりが何をやっているのかわかりませんが、これから覚えていこうと思います。
No.2
- 回答日時:
シェルスクリプトは、「キーボードマクロ」ではありません。
現在のものは
・sqlplusを実行。終了を待つ
・declareをcshまたはunixのコマンドとして実行を試みる
…
という動作になります。
これは「cshで実装できる方法」ではなく、「sqlplusでログオン→コマンド実行を自動で行う方法」を調べ、それを「シェルスクリプトで記述する」ということになります。
既出の「ヒアドキュメントを使って標準入力から入力」の他、「別ファイルにsqlのスクリプトを保存しておいて、sqlplusで@のあとにファイルを指定して実行」というのもあります。
http://download.oracle.com/docs/cd/B12037_01/ser …
あと、老婆心ながら。
この程度のスクリプトならどちらでもいいかと思いますが、cshスクリプトはあまりお勧めできません。
sh系を使うようにすることをお勧めします。
遅くなり申し訳ないです。
色々な実装方法があるのですね。
老後心で助言助かりますが、客先がCシェル指定なもので・・・。
でも、何となくCシェルをお勧めしない理由がわかりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- UNIX・Linux Linuxのシェル関数を作成して要件を満たす方法 1 2022/11/19 20:33
- その他(プログラミング・Web制作) ログインシェル時のSHELL環境変数 1 2022/06/08 19:21
- Mac OS PATHを使ってcdなどで簡単に移動できるようになりたい 3 2023/05/13 14:22
- UNIX・Linux Thunderbirdで既読にしても、シェルにログインするとYou have mail.と表示される 3 2022/09/10 08:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
PDFファイルを開き、印刷し、閉...
-
VBscriptが起動しない?
-
[teraterm] waitコマンドで停止...
-
複数のbatファイルを自動実行し...
-
「読み取りと実行」と「読み取...
-
エクセル フォルダの画像を画...
-
NASに移したBATファイルからセ...
-
バッチファイルが不正終了して...
-
バッチファイルで以下のような...
-
Excel VBA ステップインが途中...
-
バッチファイルの内容を表示さ...
-
pythonスクリプトを管理者権限...
-
VScodeのエラー解決法 Pythonの...
-
【VB.NET】exeを実行すると「発...
-
これってパソコンの最適化が完...
-
メッセージを他のPCに出したい
-
VBScriptでコマンドプロンプト...
-
VBScriptでSQLファイルの実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
バッチファイルで以下のような...
-
テキストファイルの1行目のみを...
-
[teraterm] waitコマンドで停止...
-
VBscriptが起動しない?
-
Excel VBA ステップインが途中...
-
「読み取りと実行」と「読み取...
-
バッチファイルの内容を表示さ...
-
PDFファイルを開き、印刷し、閉...
-
ネットワーク名が見つかりません
-
これってパソコンの最適化が完...
-
エクセル フォルダの画像を画...
-
【VB.NET】exeを実行すると「発...
-
pythonスクリプトを管理者権限...
-
Excel(エクセル) VBA プロシー...
-
VBS実行時にコマンドプロンプト...
-
バッチファイルが不正終了して...
-
16進数の変換処理
-
シェルで5分前の時間を取得したい
おすすめ情報