シェルスクリプトでsql/plusを呼び出し、ストアドプロシジャを
実行しようとしているのですが、crontabを使ったスケジュール起動を
行おうとすると、以下のようなエラーになってしまいます。
Message file sp1<lang>.msb not found
Error 6 initializing SQL*Plus
not foundと言われているファイルに心当たりがありません。
sql/plusがバックグラウンドで使っているファイルなのでしょうか?
ちなみに、crontabを使わずに、コマンドラインから
このシェルスクリプトを実行すると、正常に動作します。
UNIXもシェルスクリプトも超初心者です。
ご存知の方おられましたら、ご教授願います。
OSはRedHat6.2J、Oracle8.1.7です。
No.2ベストアンサー
- 回答日時:
白黒ならず、黒白です。
多分ですが、以下のような環境変数を設定することで、
解決できるかと思われます。
(あくまでも参考にして下さい)
miya777さんの言われるように、cronでは環境変数といわれるものが
ひきつぎされないため、シェルの中で再度設定する必要があります。
setenv ORACLE_BASE /xxxx/oracle
setenv ORACLE_HOME $ORACLE_BASE/product/8.1.5
setenv ORACLE_SID xxxxx
setenv NLS_LANG Japanese_Japan.JA16EUC
setenv ORA_NLS33 $ORACLE_HOME/xxxxx/...
setenv LD_LIBRARY_PATH $ORACLE_HOME/lib
set path=( . /usr/bin /sbin /usr/sbin /usr/ccs/bin /opt/bin /opt/local/bin /usr/ucb /xxxx/.../oracle/product/8.1.5/bin $path )
ちなみに、envコマンドにて上記のsetenvコマンドの内容は
参照できるかと思います。
結構、cronで起動する場合は、注意していないと環境変数
については忘れがちになる部分です。
この回答でうまくいけばと思います。
でわ
blackwhiteさん、親切な回答ありがとうございます。
お返事が遅くなってしまってすみません。
あれから、色々調べてやってみてblackwhiteさんの言うような
環境変数の設定までなんとかたどりつきました。
勉強不足でお手数おかけしてすみませんでした。
大変勉強になりました。ありがとうございます!
No.1
- 回答日時:
cronで起動した場合、下記の環境変数しか設定されません。
HOME=user's-home-directory
LOGNAME=user's-login-id
PATH=/usr/bin:/usr/sbin:.
SHELL=/usr/bin/sh
なので、パスもORACLE_HOMEも不充分となります。
起動するシェルのなかで、環境変数をちゃんと設定しないと駄目です。
この回答への補足
回答ありがとうございます。少し補足しますと、
起動するシェルは、以下のように記述しております。
#!/bin/bash
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/oracle/product/8.1.7/
bin;
export PATH
/home/oracle/product/8.1.7/bin/sqlplus @/home/oracle/product/8.1.7/bin/test
「ORACLE_HOMEをシェルの中で設定する」という部分が
よくわからないのですが.......
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- UNIX・Linux Debianでシェルスクリプトにおいて正規表現の条件文で[[,]]が使えないので困ってます 2 2023/01/20 09:27
- BTOパソコン SSDが認識しないので色々触ってるうちにWindowsが起動しなくなりエラーコード0xc000022 4 2023/05/24 16:15
- その他(ゲーム) SkyrimSEのMod organizer で困っています。誰か助けてください。 1 2022/12/05 01:49
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Microsoft ASP C#からvbsを実行したい 5 2022/11/24 17:31
- その他(プログラミング・Web制作) Linuxについて質問です。 引数に指定されたアクセスログのファイルからアクセス数が多い順に上位3つ 1 2023/02/03 03:46
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
crontabで実行されない部分がある・・・?
UNIX・Linux
-
crontabで登録したシェルが動かなくなってしまいました
Oracle
-
ls であるファイル以外を表示したい
UNIX・Linux
-
-
4
sqlplusの操作をシェル上で
Oracle
-
5
シェルスクリプトでオラクルのエラーメッセージを取得するには
Oracle
-
6
PL/SQLをWindowsのBATファイルで実行するには
Oracle
-
7
shellからストアドプロシージャの呼び出し
Oracle
-
8
データを削除しても表領域の使用率が減りません
Oracle
-
9
sqlのエラーハンドリングについて質問です。
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自動パスワード入力でscpするス...
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
Bシェルで文字列が日付として正...
-
Linux 月を英語表示したい
-
シェルスクリプト実行で”そのよ...
-
WIN10(MAC-bootcamp)で 起動時...
-
cron設定で正常に動作しない
-
Cシェルのかっこいいプロンプト...
-
SONYの音楽ソフト「x-アプリ」...
-
iqoo neo 9と言うスマホがある...
-
windows10のごみ箱をrd /s /q C...
-
TOPコマンドで表示するCPU使用...
-
Dirコマンドでフォルダ内ファイ...
-
マウントしたUSBメモリに書き込...
-
Linux環境 grepで改行コード(CR...
-
VBAを使って電源を切るには?
-
Linux(Fedora)で外付けHDDが...
-
【Gmailコマンド】1年以上前の...
-
IPアドレスだとPingが通るのに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
シェルスクリプト実行で”そのよ...
-
Linux 月を英語表示したい
-
自動パスワード入力でscpするス...
-
crontabでsql/plusの起動
-
cronの@rebootでのdateコマンド...
-
Linuxで自作バッチファイルの置...
-
apachectl start command not f...
-
Cronジョブの終了時刻を簡単に...
-
cron設定で正常に動作しない
-
UNIXのbashエラーでnot a valid
-
sudoでシェルスクリプトを実行...
-
crontabでjavaだけが上手く動い...
-
macのターミナルからemacsを開...
-
crontabで実行されない部分があ...
-
Cシェルのかっこいいプロンプト...
-
Linuxでシェルスクリプトがフル...
-
hp-uxで時間(時計)を合...
-
bad interpreterで、シェルが使...
おすすめ情報