2016-05-10 8 views
-3

私はそのクエリが必要な機能と呼ばれるジョブの名前を選択する必要がありますが、残念ながら私はそれを把握できません、誰かが私を助けることができますか? ありがとう;-)オラクルでジョブの名前を取得する方法

+0

Plzあなたの質問を再投稿してください。 –

+0

私はいくつかのデータを収集してスナップショットを作成する機能(別のジョブから呼び出されます)を持っています。スナップショットはテーブルに挿入され、最後に実行されたジョブでこのジョブによって作成されたスナップショットから.zipを作成します。だから私は、この関数によって作られたすべてのスナップショットに対して私の関数を呼び出すジョブの一意の識別子を追加する必要があります。 – Silverrook

答えて

1

User defined Contextで行うことができます。

まず、ユーザー定義のコンテキストを使用できるようにするには、コンテキスト内の属性を設定するために使用される信頼できるプロシージャを作成する必要があります。 dbms_session.set_contextは直接使用できないため、これを行う必要があります。この後

create procedure set_test_ctx 
(
    p_attribute_name in varchar2, 
    p_attribute_value in varchar2 
) is 
begin 
    dbms_session.set_context(
     'test_ctx', 
     p_attribute_name, 
     p_attribute_value); 
end; 
/

私たちは、あなたが他のユーザーと、このコンテキストを使用する必要がある場合に助成金を出すことを忘れないでください、私たちのコンテキスト

create context test_ctx using set_test_ctx; 

を作成します。

grant execute on set_test_ctx to test_user; 

今、あなたは、コンテキストを使用して値を盗んするビュー「session_context」または関数SYS_CONTEXTを使用する手順を使用することができます。

execute set_test_ctx('ATTRIBUTE1', 'value1'); 

select value from session_context where namespace='TEST_CTX' and ATTRIBUTE='ATTRIBUTE1'; 

select sys_context('TEST_CTX','ATTRIBUTE1') as value from dual; 
関連する問題