非常に一般的なタイトルで申し訳ありませんが、短い言葉でそれを置くための最良の方法を考えることはできません。さまざまな顧客向けのいくつかのエクスポートについて問い合わせがあります。これらは各顧客に対して同じクエリですが、IDによってフィルタリングされます。さまざまな種類のエクスポートごとにタブを作成し、各タブにさまざまな顧客の変数を設定して、任意の顧客の任意のDBインスタンスで簡単に実行できるようにしたかったのです。ただし、最後のステートメントはクエリであり、結果ウィンドウに返すようにしたいのですが、INTOステートメントを期待していることを示しています。私はカーソルが苦手です。それが正しい答えかどうかはわかりませんが、過去に皆さんが私をかなり助けてくれたので、皆さんに聞いてみようと思いました。ありがとう。
タブの例:
DECLARE lEventID INTEGER;
lCustID INTEGER := 1 -- Development Customer1
--lCustID INTEGER := 2 -- Development Customer2
--lCustID INTEGER := 3 -- Development Customer3
--lCustID INTEGER := 4 -- Development Customer4
--lCustID INTEGER := 5 -- Development Customer5
--lCustID INTEGER := 101 -- Testing Customer1
--lCustID INTEGER := 102 -- Testing Customer2
--lCustID INTEGER := 103 -- Testing Customer3
--lCustID INTEGER := 104 -- Testing Customer4
--lCustID INTEGER := 105 -- Testing Customer5
--lCustID INTEGER := 201 -- Production Customer1
--lCustID INTEGER := 202 -- Production Customer2
--lCustID INTEGER := 203 -- Production Customer3
--lCustID INTEGER := 204 -- Production Customer4
--lCustID INTEGER := 205 -- Production Customer5
BEGIN
SELECT EventID INTO lEventID
FROM Event
WHERE EventName = 'Event1'
SELECT Field1,
Field2,
Field3
FROM Table1
WHERE EventID = lEventID
AND CustomerID = lCustID;
END;
今、私はおそらくに変更DECLARE
しvar
、削除しBEGIN
、END;
、次に、最初のクエリを2番目のクエリのサブクエリとして配置すると、機能するはずです。ただし、これをパッケージ内と同じように構造化しようとしています。更新ステートメントと挿入ステートメントがあるため、このコードがパッケージ内にあるプロシージャを実行したくありません。このクエリを実行したいのは、実際に実行する前に何が起こるかを確認できるようにするためです。このワークスペースを仲間の従業員と共有するつもりです。彼らが混乱しすぎないようにしたいと思います。元のパッケージでは、クエリはカーソルに置かれます。カーソルは、最終的にエクスポートされるプロシージャのoutパラメータです。よろしくお願いします。また、Benthic Goldenは、開発者がOracleと対話するために使用するユーティリティです。これは、当社がライセンスを持っているためです(他のスイートは使用できません)。