- PR -

Oracle10gのジョブでバッチファイル起動

1
投稿者投稿内容
なりこ
ベテラン
会議室デビュー日: 2005/06/09
投稿数: 61
投稿日時: 2006-02-13 21:48
いつもお世話になっています。

Oracle10gのジョブでDBサーバー上に存在するバッチファイルを実行させようとしたところ「指定されたパスが見つかりません」というエラーが発生します。

パスに間違いはありませんし、ユーザーに権限も設定済みです。

他にどういう理由が考えられるでしょうか?
何かご存知の方、教えていただけませんか?
よろしくお願いします。
Desmo
大ベテラン
会議室デビュー日: 2004/03/24
投稿数: 149
投稿日時: 2006-02-14 10:01
> パスに間違いはありませんし、ユーザーに権限も設定済みです。

どのユーザに権限を付けたのでしょうか?
(OSが記述されていないので)当てはまるかどうか判りませんが、例えばWindowsであればOracleのサービスはデフォルトでLocalSystemという特殊なユーザによって実行された思います。したがってAdministratorのような 仮にOracleをインストールしたユーザに権限を割り当てても反映しません。
(きっとUNIXの場合もインストール・ユーザとイコールでは無いのでは?)
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-02-14 10:44
引用:

なりこさんの書き込み (2006-02-13 21:48) より:

Oracle10gのジョブでDBサーバー上に存在するバッチファイルを実行させようとしたところ「指定されたパスが見つかりません」というエラーが発生します。

パスに間違いはありませんし、ユーザーに権限も設定済みです。



フルパスに空白文字とかマルチバイト文字がはいっていません?

# プラットホームが不明なので的外れかもしれませんが、
# Windows だとしたら OracleJobScheduler%SID% みたいな
# サービスは起動していますか?

_________________
もしもし@RMAN 友の会
なりこ
ベテラン
会議室デビュー日: 2005/06/09
投稿数: 61
投稿日時: 2006-02-14 10:52
Desmoさん 返信ありがとうございます。

バッチファイル起動用のユーザーを作り、admini権限を設定し、バッチファイルとして起動する権限を設定しています。

9iではマニュアルに載っていた方法の通り設定して、正常に起動できていたので
同じことを10gでもやっているのですが。。。

ちなみに10gを実行させると「ORA-27369」というエラーが返されます
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-02-14 11:07
引用:

なりこさんの書き込み (2006-02-14 10:52) より:

9iではマニュアルに載っていた方法の通り設定して、正常に起動できていたので
同じことを10gでもやっているのですが。。。

ちなみに10gを実行させると「ORA-27369」というエラーが返されます



% oerr ora 27369
27369, 00000, "job of type EXECUTABLE failed with exit code: %s"
// *Cause: A problem was encountered while running a job of type EXECUTABLE.
// The cause of the actual problem is identified by the exit code.
// *Action: Correct the cause of the exit code and reschedule the job.

9i までは、外部プログラムを実行するスケジューラは用意されていませんでした。
dbms_scheduler は 10g からの機能です。なので、作業としては 9i とは別の内容に
なるのではなかろうかと。

正味な話、どんな処理を実行しようとしてたんでしょうか?

_________________
もしもし@RMAN 友の会
なりこ
ベテラン
会議室デビュー日: 2005/06/09
投稿数: 61
投稿日時: 2006-02-14 13:37
>正味な話、どんな処理を実行しようとしてたんでしょうか?

本当に実現したい事は
「1ジョブの中に複数のローダー実行、ストアド実行、バッチファイル実行」
なんです。
でも、1ジョブの中に複数の処理を登録する方法が分からない(登録出来ない?)ので
複数のロード実行処理を記述したbatファイルと、ストアド実行のbatファイルと、
LOGファイル(txt)のRENAME処理を実行するbatファイルの3つに分けて
ジョブとして登録し、スケジューリング3つのbatファイルを実行させようと思っています。

9iでは1ジョブの中で、ローダー、ストアド、batファイルの実行が登録できていましたので、同じように登録できるものだと思っていたのですが。。
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-02-14 17:51
引用:

なりこさんの書き込み (2006-02-14 13:37) より:

本当に実現したい事は
「1ジョブの中に複数のローダー実行、ストアド実行、バッチファイル実行」
なんです。
でも、1ジョブの中に複数の処理を登録する方法が分からない(登録出来ない?)ので
複数のロード実行処理を記述したbatファイルと、ストアド実行のbatファイルと、
LOGファイル(txt)のRENAME処理を実行するbatファイルの3つに分けて
ジョブとして登録し、スケジューリング3つのbatファイルを実行させようと思っています。



バッチの実行と言うことなら dbms_scheduler を使用するかと思いますが、ここで
実行ファイルの名前を指定する箇所は、.bat のバッチファイルではなく cmd.exe の
名前を指定することになったかと。

ただ、

引用:

9iでは1ジョブの中で、ローダー、ストアド、batファイルの実行が登録できていましたので、同じように登録できるものだと思っていたのですが。。



9i に dbms_scheduler は無いですから、もしかして OEM か何かで作業していたんでは
ないですか?
10g の方は具体的にどんな作業で登録しようとしてます?

_________________
もしもし@RMAN 友の会
なりこ
ベテラン
会議室デビュー日: 2005/06/09
投稿数: 61
投稿日時: 2006-02-14 21:07
>バッチの実行と言うことなら dbms_scheduler を使用するかと思いますが、ここで
>実行ファイルの名前を指定する箇所は、.bat のバッチファイルではなく cmd.exe の
>名前を指定することになったかと。

そうなんですね。色々探していたら、cmd.exeのパスを指定した後ろに.batのファイルを指定するみたいなことは見つけました。

>9i に dbms_scheduler は無いですから、もしかして OEM か何かで作業していたんでは
>ないですか?
>10g の方は具体的にどんな作業で登録しようとしてます?

おっしゃるとおり、9iではOEMで作業して設定しました。
10gではブラウザからログインし、管理タブのスケジュールージョブで登録しようとしています。

タイトルの質問からは、ずれる質問なんですが、10gでは1つのジョブに複数の処理をまとめることって出来ないものなんですか?
本当はローダーでデータを取り込む処理を行った後、成功したら指定のストアドを実行させるという処理を行いたいんです。。。


[/quote]
1

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