如何在没有“创建过程”权限的数据库上测试PL/SQL函数?

如何在没有“创建过程”权限的数据库上测试PL/SQL函数?,sql,database,stored-procedures,Sql,Database,Stored Procedures,我正在尝试对编写在开发数据库上的PL/SQL存储过程进行故障排除,该过程在生产数据库上出现故障。我所有的编码和测试都使用SQLdeveloper 显然,条件的组合导致查询过程中丢失了几行数据。问题数据不存在于开发数据库中,仅存在于生产数据库中;但是,如果我想使用SQLdeveloper测试这个过程及其功能,我只能连接到开发数据库 我的雇主的IT安全政策禁止开发人员对生产数据库拥有“只读”权限以外的任何权限。即使我的存储过程只包含SELECT语句,只要我想调整代码并测试对其所做的任何更改,我仍然必

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

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

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

另一方面,没有简单的方法用生产数据库中存在的“问题”数据填充开发数据库。它是通过大量用户的复杂交易序列实现的。用生产数据库的副本覆盖开发数据库需要我所在组织的国会法案


一句话:是否有某种解决方法,或者我必须等待几周,直到公司DBA再次“刷新”开发数据库?

我认为没有一种简单的方法可以做到这一点。正如您已经知道的,最好的解决方案是在您的开发环境中获取产品数据。同时,您可以尝试通过手动执行select语句来“调试”prod中的过程,而无需创建整个过程,并尝试找出发生了什么以及在哪里中断。您可以尝试在dbms_输出中使用开始/结束块,并尝试调试过程的某些部分。。。祝你好运

制作另一个开发数据库,它是生产数据库的副本。谢谢回复!我正是这样做的,从有问题的函数中执行SQL片段,我相信我可能已经确定了问题数据。这是我们的一个用户不正确地输入的东西。同时,我将建立一个流程,以便在这种情况再次发生时,使用prod数据加速dev db的“刷新”。