2014-03-06 84 views
0

我正試圖解決在開發數據庫上寫入的PL/SQL存儲過程,該數據庫在生產數據庫上出現故障。我使用SQLdeveloper進行所有編碼和測試。如何測試數據庫中沒有'CREATE PROCEDURE'權限的PL/SQL函數?

顯然,條件的組合導致在查詢期間錯過幾行數據。問題數據在開發數據庫中不存在,只存在於生產數據庫中;但是,如果我想使用SQLdeveloper來測試此過程及其功能,我只能連接到開發數據庫。

我的僱主的IT安全政策禁止開發人員在生產數據庫上擁有「只讀」特權。儘管我的存儲過程僅包含SELECT語句,但我仍然必須執行CREATE或REPLACE PROCEDURE語句,只要我想調整代碼並測試對其做出的任何更改。顯然,如果沒有必要的權限,我無法做到這一點。

另一方面,沒有簡單的方式填充開發數據庫與生產數據庫中存在的'問題'數據。它通過許多用戶的複雜的交易順序到達那裏。用生產數據庫的副本覆蓋開發數據庫需要在我的組織中制定「國會法案」。

底線:是否有某種解決方法,還是必須等待幾周,直到企業DBA對開發數據庫進行另一次「刷新」?

+0

創建另一個「開發」數據庫,該數據庫是生產數據庫的副本。 – RBarryYoung

回答

0

我不認爲有一個簡單的方法來做到這一點。正如你所知道的,最好的解決方案將是在你的開發中獲得prod數據。環境。同時,您可以嘗試通過手動執行select語句(不創建整個proc)來「調試」prod中的過程,並嘗試弄清楚發生了什麼以及它的中斷。您可以嘗試使用dbms_output的開始/結束塊,並嘗試調試proc的某些部分...祝您好運!

+0

感謝您的回覆!我一直在做這些 - 從有問題的函數中執行SQL代碼段 - 我相信我可能已經確定了問題數據。這是我們的一位用戶不恰當地輸入的內容。與此同時,我將建立一個流程,以便在發生這種類型的情況時再次使用prod數據加快dev db的「刷新」。 –

相關問題