問題タブ [dbms-scheduler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2179 参照

oracle - プロシージャの作成中にエラーが発生しました

重複の可能性:
Oracle の PL/SQL 関数が DBMS_AQ を認識できない

以下は、キューにデータをエンキューする手順です。手順の実行中にコンパイルエラーが発生し、どこが間違っているのかわかりません。解決策を教えてください。

エラー:

PLS-00201: 識別子'DBMS_AQ'を宣言する必要があります

PLS-00320: この式の型の宣言が不完全であるか、形式が正しくありません

付与権限を使用しようとすると、次のエラーが発生します

エラー ORA-01031: 権限が不十分です

それが問題である場合、以下の pl/sql ブロッ​​クを実行してメッセージをエンキューすると、プロシージャが正常に作成されました。権限がない場合はどうすればよいですか?

0 投票する
1 に答える
1919 参照

oracle - Oracle Scheduler –単一のジョブで複雑なスケジュールを作成する

Oracle 10g DBで実行されているジョブがあり、実行プランは非常に単純です。

問題は、計画を変更する必要があるということですが、月曜日だけです。したがって、月曜日の最初のジョブは6ではなく8で実行する必要があります。その後、他のすべてのジョブ(10、14、18)と同様に実行します。一方、火曜日から金曜日までは上記のように実行する必要があります。

最も簡単な方法は、月曜日に2番目のジョブを作成し、元のジョブから月曜日を削除することです。ただし、これは、インポートごとに1つのジョブのみに依存するため、アプリケーションにとって問題になります。

したがって、質問は次のとおりです。スケジューラーに、TUE-FRIの6、10、14、18時とMONの8、10、14、18時に単一のジョブで実行するように指示する方法はありますか?

PL/SQL式で繰り返し間隔を指定する方法について読みました。しかし、私はそれを行う方法があるかどうかわかりませんでした。

ご協力いただきありがとうございます

0 投票する
2 に答える
20768 参照

stored-procedures - Oracledbms_schedulerジョブのストアドプロシージャの名前付きパラメータを設定します

タイプが「stored_procedure」のdbms_schedulerジョブの名前付き引数をに渡すことは可能ですか?私はこの方法を試しました:

次のエラーが発生します:ORA

-27484:引数名は、プログラムのないジョブではサポートされていません。ORA-06512:「SYS.DBMS_ISCHED」の207行目ORA-06512:「SYS.DBMS_SCHEDULER」の602行目ORA-06512:2行目

引数_position設定を使用して、set_job_argument_valueでパラメーター値を正常に設定しました。ただし、特定のパラメーターのみを設定する必要があるストアドプロシージャを実行する必要があり、これが機能しない場合があります。スケジューラジョブによって実行されるストアドプロシージャに名前付き引数を渡す方法はありますか?

0 投票する
1 に答える
1264 参照

oracle - 間隔パーティションの名前を変更するOracleスケジューラ

私は奇妙な振る舞いをします。テーブル内のパーティションの名前を変更する手順があります。テストのために、この手順を 2 分ごとに実行するジョブを作成しました。最初の実行は非常にスムーズで、これまでのところエラーはありません。ただし、2回目の実行から、次のエラーが発生します

はい、私のテーブルはライブです。しかし、スケジューラを使用せずにプロシージャを明示的に実行すると、完全に正常に実行されます。問題ありません。また、スケジューラによる最初の実行もすべて完璧です。

これがスケジューラのコードです

ここに手順のコードがあります

どうすればこれを修正できますか?

0 投票する
1 に答える
1178 参照

sql - クエリを実行し、そのデータをテーブルに保存するように Oracle をスケジュールします。

クエリを実行してそのデータをテーブルに保存するように Oracle をスケジュールする方法はありますか?

または、Oracle クエリを実行して一度に単独で実行し、データをテーブルに保存するようにスケジュールする方法はありますか?

広範囲の時間 (2 年間のデータ + ロジック計算をカバー) で重いロジックが実行されるため、パフォーマンスの問題がある自動レポート ページがあります。クライアントがレポート ページをクリックすると、ロード時間が長いことに不満を持っています。この時点でデータをテーブルにダンプすることで、私の問題を解決できます。

0 投票する
2 に答える
21559 参照

oracle - Oracle データベース ユーザーは、関連する権限を持っていても DB ジョブを作成できません

「ADMUSER」という名前の Oracle データベース ユーザーがいて、次の権限があります。これは、私の理解によると、データベース ジョブを作成するために必要な権限です。[Oracle データベースのバージョンは Oracle 10g 10.2.0.4]

しかし、DBMS_SCHEDULER.create_job メソッドを呼び出すストアド プロシージャを呼び出そうとすると、権限が不十分であるというエラーが発生します。

ストアド プロシージャ:

以下のように、SQL開発者を使用してこのSPを実行しました(Java jdbcを使用して「{call PROD_Procedures.prod_dispatch_main_job(?,?,?)}」のように呼び出したときに機能しなかったため、このように実行しようとしました)。

その後、次のエラーが発生しました。

行 422 には、"DBMS_SCHEDULER.create_job"... 文字列が含まれています。しかし、前述したように、「session_privs」テーブルを確認すると、このユーザーが上記の権限を持っていることがわかります。誰でもこの問題を解決するのを手伝ってもらえますか?


更新: create_job 関数の job_class の値を「DEFAULT_JOB_CLASS」に置き換えました。その後、問題なく動作します。したがって、このユーザーには「CONSOLIDATE_CLASS」ジョブ クラスにアクセスする権限が必要だと思います。このジョブクラスでこのユーザーに付与された権限をデータベースで確認する方法を教えてください。オブジェクトに付与された権限を確認するには、どの表を参照すればよいですか?

権限を付与する前に、このユーザーが「CONSOLIDATE_CLASS」に対する実行権限を持っていないことを確認する必要があります。

0 投票する
1 に答える
1310 参照

oracle - DBMS_Scheduler get/put ファイルの代替

現在取り組んでいるサイド プロジェクトでは、リモート FTP から .csv ファイルをコピーしてローカルに保存する必要があります。使おうと思っDBMS_SCHEDULER.GET_FILEたのですが許可がおりません。マネージャーに尋ねたところ、これを行う権限を取得することはできないため、他の方法を探す必要があるとのことでした。

数日間調査した後、 に戻ってきますがDBMS_SCHEDULER、運が悪かったのか、検索スキルがひどいのか.

ありがとう