對不起,對於非常通用的標題,不能想到最好的方式把它放在簡短的話。我有針對不同客戶的一些出口的查詢。它們對於每個客戶都是相同的查詢,但是通過ID進行過濾。我想爲每種不同類型的導出創建選項卡,併爲每個選項卡中的不同客戶提供變量,以便我可以輕鬆地在任何數據庫實例上爲任何客戶運行它們。然而,最後一條語句是一個查詢,我希望它在結果窗口中返回,但它告訴我它期待着一個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;
,然後把第一次查詢的子查詢在第二個查詢,並應工作。但是,我試圖保持它的結構,因爲它在它的包中。我不想運行此代碼在程序包中的過程,因爲有更新和插入語句。我只想運行這個查詢,所以我可以看到在實際做它想做的事情之前會發生什麼。我將與同事共享這個工作空間,我不希望他們太困惑。在原始包中,查詢被放入遊標中,該遊標是最終被導出的過程的輸出參數。如果你能幫忙,我真的很感激。此外,底層金是我們開發人員用於與Oracle交互的實用程序,因爲這是我們公司獲得許可的內容(我們不能使用我相信的其他套件)。非常感謝你。
不熟悉該產品,但聽起來像是試圖表現得像SQL * Plus;如果它支持'var',它是否也支持'print',如果是這樣,那麼它會將輸出放到結果窗口中?你提到現有的包過程有一個'out'遊標 - 如果你執行了這個過程(我知道你不想這樣做),你能夠在結果窗口中顯示遊標,如果是這樣的話通過「打印」或其他東西? –
如果我以這種方式執行過程:var_recursor refcursor; exec user.package。procedure1(input1,input2,:reccursor);'就是這樣,它會自動返回窗口中的光標而不需要打印任何東西,這就是爲什麼我希望它能在這裏做同樣的事情。但事實並非如此。 – XstreamINsanity
只需注意Golden([Benthic Software](http://www.benthicsoftware.com/))支持大部分標準SQLPlus腳本語法。 – MarkF