在编码另一个存储过程时,如何在不指定完整模式名称的情况下调用同一模式中的存储过程。这些是 DB2 中的 SQL PL 过程。
第一个SP:
CREATE PROCEDURE MYSCHEMA.SP_TEST
LANGUAGE SQL
BEGIN
END
创建一个没有模式名直接调用这个SP的SP会导致编译错误:
CREATE PROCEDURE MYSCHEMA.SP_TEST2
LANGUAGE SQL
BEGIN
CALL SP_TEST();
END
它会抛出:
未找到具有兼容参数的类型为“PROCEDURE”的名为“SP_TEST”的授权例程。SQLCODE=-440,SQLSTATE=42884,DRIVER=3.53.71
直接给出完整的模式名称有效:
CREATE PROCEDURE MYSCHEMA.SP_TEST2
LANGUAGE SQL
BEGIN
CALL MYSCHEMA.SP_TEST();
END
但是,如果我移动到不同的模式,我将不得不在整个地方替换这些引用。是否有合适的解决方法或更好的解决方案?