Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

UNIXシェルスクリプトでsqlp lusを動かすには

798 views
Skip to first unread message

taku fujii

unread,
Dec 15, 2000, 12:46:03 AM12/15/00
to
はじめまして。UNIX初心者の藤井と申します。

現在私は、シェルスクリプトでsqlplusを動かそうとしてます。
作成したスクリプトを手打ちすると、正常に動きますが
それをcronに登録すると、以下のようなエラーがでてしまいます。
どうしてでしょうか?よろしくお願いします。

Message file sp1<lang>.msb not found.
Error initializing SQL*Plus

以下にソースを記述しておきます。

#!/usr/bin/ksh


SQLPLUSCOMMAND=/oracle/bin/sqlplus
SQLUSER=sti
SQLPASS=sti

$SQLPLUSCOMMAND $SQLUSER/$SQLPASS<<BBB

DELETE from phrase_tbl_
WHERE TO_DATE(wave_entry_day,'YYYYMMDD') < ADD_MONTHS(SYSDATE,-1);


SPOOL phrase_ichiran.txt

SELECT wave_renban as Renban, wave_entry_day as Entry_day, wave_entry_time
as Entry_time, wave_tel_no as Saisei_Naisen, wave_flg as Saisei_Zumi FROM
phrase_tbl_;

SPOOL OFF

commit;

exit;

BBB

KATAYAMA Yoshio

unread,
Dec 15, 2000, 1:55:20 AM12/15/00
to
In article <91cb4g$20n$1...@newsgw7.odn.ne.jp>,
"taku fujii" <ta...@progress.co.jp> writes:

>現在私は、シェルスクリプトでsqlplusを動かそうとしてます。
>作成したスクリプトを手打ちすると、正常に動きますが
>それをcronに登録すると、以下のようなエラーがでてしまいます。
>どうしてでしょうか?よろしくお願いします。

ORACLE_HOME とかの環境変数が設定されていないからでは?

env 等で shell 環境で設定されている環境変数を調べて、関係ありそ
うなものをスクリプトでも設定するようにしてみて下さい。
--
片山@PFU

Hideo Sir MaNMOS Morishita

unread,
Dec 15, 2000, 2:22:59 AM12/15/00
to

In article <91cb4g$20n$1...@newsgw7.odn.ne.jp>,
"taku fujii" <ta...@progress.co.jp> writes:
> はじめまして。UNIX初心者の藤井と申します。
>
> 現在私は、シェルスクリプトでsqlplusを動かそうとしてます。
> 作成したスクリプトを手打ちすると、正常に動きますが
> それをcronに登録すると、以下のようなエラーがでてしまいます。
> どうしてでしょうか?よろしくお願いします。
>
> Message file sp1<lang>.msb not found.
> Error initializing SQL*Plus

環境変数が設定されていない。


--
___ わしは、山吹色のかすてーらが大好きでのぅ
[[o o]] ふぉっふぉっふぉ
'J' 森下 お代官様 MaNMOS 英夫@ステラクラフト
PGP Finger = CD EA D5 A8 AD B2 FE 7D 02 74 87 52 7C B7 39 37

taku fujii

unread,
Dec 15, 2000, 3:52:12 AM12/15/00
to

"KATAYAMA Yoshio" <ka...@pfu.co.jp> wrote in message
news:KATE.00De...@sims211.trad.pfu.co.jp...

全ての関係ありそうな、環境変数は追加しましたが
上手くいきません。
追加した環境変数は以下に示します。

ORABIN=
PATH=
ORACLE_SID=
ORACLE_HOME=
それ以外に何か必要でしょうか・
よろしくお願い致します。

ちなみにrshコマンドを使用し、他のマシンからsqlplusコマンドを
実行したところ同じエラーが出ます。


KATAYAMA Yoshio

unread,
Dec 15, 2000, 6:39:36 AM12/15/00
to
In article <91cm1i$cbc$1...@newsgw7.odn.ne.jp>,
"taku fujii" <ta...@progress.co.jp> writes:

>全ての関係ありそうな、環境変数は追加しましたが
>上手くいきません。

むぅ。
直接 sqlplus を起動する時と cron で起動する時で UID が異なってい
るということもないですよね。
--
片山@PFU

Tanaka Yorihito

unread,
Dec 15, 2000, 7:07:49 AM12/15/00
to
<91cm1i$cbc$1...@newsgw7.odn.ne.jp> の
ta...@progress.co.jpさんの記事

>> 全ての関係ありそうな、環境変数は追加しましたが
>> 上手くいきません。

とありますが、exportしてないということはありませんか。


# もちろんORACLEのexportじゃありません。

Yorihito Tanaka
Keio University
Graduate School of Media and Governance
E-mail: yo...@tom.sfc.keio.ac.jp

IKEDA Hirotaka

unread,
Dec 15, 2000, 10:05:23 AM12/15/00
to

池田@YICです。

<91cm1i$cbc$1...@newsgw7.odn.ne.jp>の記事において
ta...@progress.co.jpさんは書きました。

>> > "taku fujii" <ta...@progress.co.jp> writes:
>> > >現在私は、シェルスクリプトでsqlplusを動かそうとしてます。

両者の場合の printenv の結果を取って比較してみたら如何ですか?

---
池田浩隆 ik...@yic.or.jp

稲葉 浩人

unread,
Dec 15, 2000, 11:51:40 AM12/15/00
to
稲葉です。
fj.comp.databaseを追加したほうが良かったかも知れません。

fj.unix の <91cm1i$cbc$1...@newsgw7.odn.ne.jp> の
記事において "taku fujii" <ta...@progress.co.jp>さんは書きました。


>
>"KATAYAMA Yoshio" <ka...@pfu.co.jp> wrote in message
>news:KATE.00De...@sims211.trad.pfu.co.jp...
>> In article <91cb4g$20n$1...@newsgw7.odn.ne.jp>,
>> "taku fujii" <ta...@progress.co.jp> writes:
>>
>> >現在私は、シェルスクリプトでsqlplusを動かそうとしてます。
>> >作成したスクリプトを手打ちすると、正常に動きますが
>> >それをcronに登録すると、以下のようなエラーがでてしまいます。
>> >どうしてでしょうか?よろしくお願いします。
>>
>> ORACLE_HOME とかの環境変数が設定されていないからでは?


>全ての関係ありそうな、環境変数は追加しましたが
>上手くいきません。
>追加した環境変数は以下に示します。
>
>ORABIN=
>PATH=
>ORACLE_SID=
>ORACLE_HOME=
>それ以外に何か必要でしょうか・

最初の記事の


>Message file sp1<lang>.msb not found.

からすると、
NLS_LANGを設定する必要があるのではないでしょうか?
他の方の記事にありましたように、exportすることも必要ですが。
---
稲葉 浩人 in...@st.rim.or.jp

稲葉 浩人

unread,
Dec 17, 2000, 7:39:32 AM12/17/00
to
fj.unix の <200012160...@st.rim.or.jp> の
記事において 私は書きました。
>稲葉です。
:

>最初の記事の
>>Message file sp1<lang>.msb not found.
>からすると、
>NLS_LANGを設定する必要があるのではないでしょうか?

確かめてみないでフォローするものじゃないですね。
NLS_LANGは設定しなくても英語モードになるだけですね。

>他の方の記事にありましたように、exportすることも必要ですが。

やっぱりこちらが原因でしょうか?
---
稲葉 浩人 in...@st.rim.or.jp

Mitsunori Ishikawa

unread,
Dec 18, 2000, 7:43:30 PM12/18/00
to
もう解決されたかもしれませんが...

このメッセージ

Message file sp1<lang>.msb not found.
Error initializing SQL*Plus

は、ORACLE_HOME環境変数が設定されていない場合に発生します。

環境変数は追加しました、とありますが、単純に

ORACLE_HOME=/oracle
ORACLE_SID=oracle

ではなくて、

export ORACLE_HOME=/oracle
export ORACLE_SID=oracle

のような記述が必要になります。

手打ちをすると成功して、cronやrshにて実行できない理由は
やはり、環境変数の問題と考えられます。
手打ちした時にログインしたユーザのログインスクリプトには
上記のような、exportの記述が含まれているのではないでしょうか?
ご確認ください。

taku fujii wrote:
>
> "KATAYAMA Yoshio" <ka...@pfu.co.jp> wrote in message
> news:KATE.00De...@sims211.trad.pfu.co.jp...
> > In article <91cb4g$20n$1...@newsgw7.odn.ne.jp>,
> > "taku fujii" <ta...@progress.co.jp> writes:
> >
> > >現在私は、シェルスクリプトでsqlplusを動かそうとしてます。
> > >作成したスクリプトを手打ちすると、正常に動きますが
> > >それをcronに登録すると、以下のようなエラーがでてしまいます。
> > >どうしてでしょうか?よろしくお願いします。
> >

(snip)


> 追加した環境変数は以下に示します。
>
> ORABIN=
> PATH=
> ORACLE_SID=
> ORACLE_HOME=

(snip)
> ちなみにrshコマンドを使用し、他のマシンからsqlplusコマンドを
> 実行したところ同じエラーが出ます。

--
株式会社メトロシステムズ DBソリューション事業部
 石川 満律 (mailto:ishi...@metrosystems.co.jp)

Kentarou Murata

unread,
Dec 18, 2000, 9:44:24 PM12/18/00
to

"taku fujii" <ta...@progress.co.jp> writes:

> 現在私は、シェルスクリプトでsqlplusを動かそうとしてます。
> 作成したスクリプトを手打ちすると、正常に動きますが
> それをcronに登録すると、以下のようなエラーがでてしまいます。
> どうしてでしょうか?よろしくお願いします。

村田と申します。
遅いレスですみません。

cron からユーザプログラムを起動した場合、.profile や .cshrc
に設定されている環境変数は読まれません。明示的にスクリプト内
へ読み込む必要があります。

Oracle では TWO_TASK や NLS_LANG や LANG も設定した方がいい
でしょう。

あと、shared の libclntsh.so.1.0 なんかを見るようになってる
なら LD_LIBRARY_PATH もチェックした方がいいです。

Solaris の v7.3.4 ベースだと sqlplus にはバグ #658711 がある
ので、パッチをあてない場合 TWO_TASK 環境変数を設定しないと接続
できません。

0 new messages