如何在没有“CREATE PROCEDURE”权限的数据库上测试PL / SQL函数?

时间:2014-03-06 17:44:40

标签: sql database stored-procedures

我正在尝试解决在开发数据库上编写的PL / SQL存储过程,该存储过程在生产数据库上出现故障。我使用SQLdeveloper进行所有编码和测试。

显然,条件的组合导致在查询期间错过了几行数据。问题数据不存在于开发数据库中,仅存在于生产数据库中;但是,如果我想使用SQLdeveloper来测试这个过程及其功能,我只能连接到开发数据库。

我的雇主的IT安全政策禁止开发人员在生产数据库上拥有“只读”权限。即使我的存储过程仅包含 SELECT 语句,每当我想调整代码并测试我对其所做的任何更改时,我仍然必须执行 CREATE OR REPLACE PROCEDURE 语句。没有必要的特权,显然我不能这样做。

另一方面,没有 easy 方法使用生产数据库中存在的“问题”数据填充开发数据库。它通过大量用户的复杂交易顺序到达那里。用生产数据库副本覆盖开发数据库需要在我的组织中使用“国会法案”。

结论:是否存在某种类型的解决方法,或者我必须等待几周,直到公司DBA再次对开发数据库进行“刷新”?

1 个答案:

答案 0 :(得分:0)

我认为没有一种简单的方法可以做到这一点。如您所知,最佳解决方案是在您的开发中获取prod数据。环境。在此期间,您可以尝试通过手动执行select语句(不创建整个proc)来“调试”prod中的过程,并尝试找出发生了什么以及它在哪里中断。您可以尝试使用dbms_output的开始/结束块并尝试调试proc的部分...祝你好运!