Я новичок в хранимых процедурах. Я пытаюсь запустить хранимую процедуру и получить эти ошибки: Я получаю PLS-00103: встретил символ «ВЫБРАТЬ», если ожидал одно из следующего: начало процедуры функции pragma ... PLS-00103: Встретил символ " RETURN ", ожидая одно из следующего: * & = - + < /> at in is mod осталось не rem ... Я попытался найти причины, которые приводят к этим ошибкам и примерам, подобным этому, но результатов было недостаточно , Какие-нибудь подсказки относительно того, почему эти ошибки происходят? вот код:PLS-00103 Ошибка хранимой процедуры Oracle
CREATE OR REPLACE PROCEDURE LIST_ACTIONS_CHECK_ADD
(
LISTNAME IN VARCHAR2
) AS
BEGIN
DECLARE CNT NUMBER;
SELECT COUNT(LIST_NAME) INTO CNT FROM LISTS_MASTER WHERE LIST_NAME = LISTNAME;
IF (CNT > 0)
RETURN 1
ELSE
RETURN 0
END IF;
END LIST_ACTIONS_CHECK_ADD;
Новый код:
CREATE OR REPLACE PROCEDURE LIST_ACTIONS_CHECK_ADD
(
P_LISTNAME IN VARCHAR2
)
AS
L_CNT NUMBER;
BEGIN
SELECT COUNT(LIST_NAME)
INTO L_CNT
FROM LISTS_MASTER
WHERE LIST_NAME = P_LISTNAME;
IF (L_CNT > 0)
RETURN 1;
ELSE
RETURN 0;
END IF;
END LIST_ACTIONS_CHECK_ADD;
Большое вам спасибо за вашу помощь. Я использовал все ваши советы, кроме использования привязанных типов. Из того, что я понимаю, посмотрев на привязанные типы, вот, что ваш параметр заносится из таблицы lists_master из столбца list_name? На самом деле я просто хотел бы, чтобы это был параметр, который я надеялся ввести так: CALL LIST_ACTIONS_CHECK_ADD ('BLACKLIST'); – jon
Теперь, когда я компилирую код, как вы сказали, я получаю сообщение об ошибке (13,4): PLS-00103: встретил символ «ВОЗВРАТ», когда ожидал одно из следующего: * & = - +> ... Любая идея почему? Я редактировал оригинальный вопрос, чтобы содержать новый код – jon
@jon - привязанный тип просто указывает, что передаваемый вами параметр - это любой тип 'lists_master.list_name', определенный как текущий. Это не мешает вам проходить жестко закодированную строку, даже если эта строка отсутствует в таблице. Это означает, что тип данных параметра изменится, если изменится тип данных в столбце «list_name» и предоставляет следующему разработчику документацию о том, какие данные следует ожидать. –