Так что я знаю, что если вы определите что-то в спецификации пакета, то оно должно быть реализовано в теле. Можно ли определить метод в теле, но не спецификацию?Характеристики и корпус пакета Oracle
ответ
Да, процедура или функция могут быть определены в корпусе упаковки, но не в спецификации пакета. Объекты в спецификации являются общедоступными, объекты только в теле являются частными для этого пакета.
Создание спецификации и тела пакета
create or replace package test_package is
procedure public_procedure;
end;
/
create or replace package body test_package is
procedure private_procedure is
begin
null;
end;
procedure public_procedure is
begin
private_procedure;
end;
end;
/
Как звонить пакет
--WORKS:
begin
test_package.public_procedure;
end;
/
--FAILS WITH THIS ERROR:
-- ORA-06550: line 2, column 15:
-- PLS-00302: component 'PRIVATE_PROCEDURE' must be declared
-- ORA-06550: line 2, column 2:
begin
test_package.private_procedure;
end;
/
Почему вы должны сделать это?
На языке, подобном Java, этот вопрос, вероятно, будет закрыт для того, чтобы быть слишком очевидным. Но это понятный вопрос в PL/SQL, поскольку большинство программистов PL/SQL делают все общедоступным. Рассматривая среднюю программу PL/SQL, разумно сказать себе: «для этого должна быть веская причина».
Нет.
Частное лицо должно быть по умолчанию. Сделайте только что-нибудь общедоступное, если вам нужно нужно, чтобы поделиться им с другими объектами и программистами. Или если вам нужно, чтобы что-то сохранялось во время сеанса.
Используйте частные процедуры и функции, чтобы скрыть как можно больше деталей. Это упрощает пакеты. Это также дает другим программам и программистам меньше способов злоупотреблять вашим пакетом.
- 1. обновить корпус пакета в Oracle Database (разработчик Sql)
- 2. Корпус с Oracle SGBD
- 3. Характеристики пакета и спецификаций материала JavaFX
- 4. Корпус коммутатора Oracle plsql и катушка sqlplus
- 5. Характеристики контроллера и характеристики запроса?
- 6. проверочного ограничения в Oracle SQL (белый корпус)
- 7. Ошибки создания тела пакета Oracle
- 8. Oracle - Названия таблиц и столбцы - могу ли я изменить корпус?
- 9. Oracle - Использование пакета
- 10. Успешно скомпилированный пакет Oracle сбой при вызове с ORA-04063: корпус пакета «...» имеет ошибки
- 11. Ошибка пакета Oracle
- 12. Характеристики JDeveloper и ADF
- 13. Maven и числовые характеристики
- 14. Направление и характеристики обхода
- 15. Методы и характеристики метеоров
- 16. Неизменяемые типы и характеристики
- 17. scrum и технические характеристики
- 18. Характеристики и модификация Котлина
- 19. Корпус, подзапрос и соединения
- 20. Корпус Когда с И?
- 21. Как защитить мой пакет или корпус пакета и поставить ссылку на мой экспорт EXCEL-файл
- 22. Как преобразовать kwic из пакета quanteda в корпус?
- 23. Вызов пакета oracle от SSRS
- 24. Ошибка пакета Oracle PL/SQL
- 25. Ошибка домена Oracle SOA-пакета
- 26. Обновление пакета MyBatis для oracle
- 27. Проблема установки пакета oracle NPM
- 28. Характеристики масштабирования и перехода D3JS
- 29. Основные характеристики местоположения и скорости
- 30. Характеристики MusicXML и символы аккордов
Благодарим вас за подробное описание. Ваш ответ прошел выше и выше! –