Это моя первая попытка создания пакета, поэтому я, должно быть, упускаю что-то действительно очевидное (ничто из того, для чего я гуглил, кажется, даже не стоит упоминать).
Очевидно, что если в теле вашего пакета есть процедуры, которые не включены в раздел спецификации, то эти процедуры являются частными. Проблема в том, что я не могу понять, как ссылаться на эти частные пакеты, как только я их сделаю. И SQL Developer отказывается давать мне какие-либо сообщения, более полезные, чем «выполнение завершено с предупреждением», что не помогает ...
В качестве примера, это то, что я пытался, что не работает (просто выдает вышеупомянутую ошибку компилятора):
CREATE OR REPLACE PACKAGE BODY testPackage AS
PROCEDURE privateProc; --Forward declaration
PROCEDURE publicProc IS
BEGIN
EXECUTE privateProc();
END;
PROCEDURE privateProc IS
BEGIN
DBMS_OUTPUT.PUT_LINE('test');
END;
END testPackage;
Я также пытался обозначить его как testPackage.privateProc
, который тоже не сработал.
Что я делаю не так?