无法执行嵌套存储过程

时间:2012-09-21 14:45:43

标签: visual-studio-2010 oracle stored-procedures odt

我正面临PL / SQL存储过程的问题。我有一个名为sp1的SP,我使用ODT for VS2010部署到我的oracle架构,我可以毫无问题地执行。 当我尝试从部署之前已经存在于模式中的另一个名为sp2的存储过程执行sp1时,问题就被解除了(我在sp2的主体中添加对sp1的调用并直接从同一模式调用sp2)。通过这种方式我得到的只是ORA-01031 insufficient privileges例外。

我用Google搜索,发现问题是由于AUTHID CURRENT_USER语句中缺少子句CREATE PROCEDURE。我在另一个带有该子句的包中创建了另一个名为sp3的存储过程,并在其中插入了对sp1的调用。有了这个修改执行工作。

create or replace procedure sp3(string param)
authid current_user
as 
begin
  sp1(param);
end;

不幸的是我不能接受这个解决方案因为我必须使用已经存在的包(至少有M个应用程序使用sp2程序并且直接在每个程序中添加sp3或sp1是不可能的)。我将版本11用于oracle服务器和客户端。

有什么想法吗?

0 个答案:

没有答案