您的位置:首页 > 其它

前置声明解决相互递归时的PLS-00313

2018-02-11 23:33 477 查看
碰到了一个互相递归的情况,在一个存储过程中,函数A需要调用B,同时函数B也需要调用A,此时发生了PLS-00313: XXXX not declared in this scope的错误。



原因很直接,在编译函数F_A时,发现F_B函数没有声明过,报错!
此时陷入了一个死循环,先放F_B函数,也会因为F_A函数未声明而报错,幸好PLSQL已经考虑到了这种偶发情况,解决的方法是“前置声明”。



即在F_A前面再加一条F_B的声明,但不包含具体的定义。这下编译就通过了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: