我有一个已部署的软件包Pack1,每月运行一次,批处理作业没有任何问题。我需要使用一些自定义参数运行它,如下所示。但是我一直收到错误"必须声明Pack1" 。我无法想象我需要复制/粘贴整个存储过程来执行此操作吗?
BEGIN
Pack1(1
,TO_DATE('2016-06-01', 'YYYY-MM-DD')
,TO_DATE('2016-11-30', 'YYYY-MM-DD')
);
END
;
答案 0 :(得分:1)
你说你编译了包Pack1
并打电话给Pack1(...)
。你需要调用procedure而不是package,所以它应该是:Pack1.procedure(...)
并且如注释中所提到的那样,将package作为拥有包的用户的前缀更安全,所以最终版本是:
BEGIN
user.Pack1.procedure(1
,TO_DATE('2016-06-01', 'YYYY-MM-DD')
,TO_DATE('2016-11-30', 'YYYY-MM-DD')
);
END
/
另外,请检查您登录的用户是否有授权来执行该程序包。如果仍然无效,请分享您的包裹代码。