ご無沙汰しております。
業務で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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
「読み取りと実行」と「読み取...
-
Windows System32 Security Hea...
-
これってパソコンの最適化が完...
-
VBscriptが起動しない?
-
VBScriptでコマンドプロンプト...
-
exeファイルを実行するとコマン...
-
複数のbatファイルを自動実行し...
-
バッチファイルの内容を表示さ...
-
VBA 既に開いているBookに継続...
-
【VB.NET】exeを実行すると「発...
-
.NETからストアドプロシージャ...
-
【ACCESS】マクロの「アプリケ...
-
ネットワーク名が見つかりません
-
PDFファイルを開き、印刷し、閉...
-
バッチファイルが不正終了して...
-
VB.NETでのDOSコマンドを実行に...
-
NASに移したBATファイルからセ...
-
VBAのコマンドプロンプトでpaus...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
これってパソコンの最適化が完...
-
exeファイルを実行するとコマン...
-
「読み取りと実行」と「読み取...
-
バッチファイルの内容を表示さ...
-
pythonスクリプトを管理者権限...
-
VBscriptが起動しない?
-
バッチファイルが不正終了して...
-
Excel(エクセル) VBA プロシー...
-
複数のbatファイルを自動実行し...
-
PDFファイルを開き、印刷し、閉...
-
エクセル フォルダの画像を画...
-
Access の VBA 実行中に他の操...
-
【VB.NET】exeを実行すると「発...
-
ネットワーク名が見つかりません
-
NASに移したBATファイルからセ...
-
VB.NETでのDOSコマンドを実行に...
-
VScodeのエラー解決法 Pythonの...
-
VBScriptでコマンドプロンプト...
おすすめ情報