Ваш код:
create or replace PACKAGE emp_bonus_2 AS
PROCEDURE calc_bonus (date_hired number);
END emp_bonus_2;
/
CREATE PACKAGE BODY emp_bonus_2 AS
PROCEDURE calc_bonus
(date_hired number) IS
BEGIN
DBMS_OUTPUT.PUT_LINE
('Employees hired on ' || date_hired || ' get bonus.');
END;
END emp_bonus_2 ;
/
Этот блок кода представляет собой сценарий, который создает два объекта, ПАКЕТ и ТЕЛО ПАКЕТА.
Редактор кода в SQL Developer предназначен для работы с одним объектом кода. Вы можете скопировать и вставить первый или второй кодовые объекты без '/', и все будет в порядке.
Если вы хотите выполнить весь блок, вы можете поместить его в рабочую таблицу SQL и запустить с помощью F5.
«/» сообщает разработчику SQL, что вы закончили с вашим PL / SQL-кодом. Это не имеет смысла с точки зрения базы данных, поэтому возникает ошибка, когда вы включаете ее в редактор кода - она также отправляется в базу данных.
Когда вы выполняете это в SQL Worksheet, SQL Developer видит символ «/» и начинает: «Ах, вот и конец этого фрагмента кода, идите на выполнение, а затем начните снова». «/» Никогда не попадает в саму базу данных.
Обратите внимание, что в SQL Plus знак «/» также может означать - «иди, запусти этот бит кода снова». Это может вызвать проблемы при создании сценариев развертывания для SQL Plus, где вы можете выполнять вещи более одного раза, потому что вы добавили
Docs
Буфер SQL В буфере SQL хранится последний введенный SQL
команда или блок PL / SQL (но не команды SQL * Plus). Команда или
блок остается в буфере, пока не будет заменен следующей командой SQL или
Блок PL / SQL. Вы можете просмотреть содержимое буфера с помощью команды LIST.
Вы можете выполнить команду или блок в буфере SQL, используя RUN
или / (косая) команды. RUN отображает команду или блок в буфере
прежде чем выполнить его. / (косая черта) выполняет команду или блок в
буфер, не отображая его первым. Для получения информации о редактировании
Команда или блок, хранящиеся в буфере, см. в разделе Редактирование скриптов в SQL * Plus
Командная строка.