Повторяющиеся поля в RECORD, TABLE или списке аргументов не допускаются

0

Im получение ошибки для моей хранимой процедуры... любая идея, как ее решить?

ПРОЦЕДУРА:

CREATE OR REPLACE PROCEDURE prc_medic_check_status(v_task_id IN VARCHAR, v_request_id IN VARCHAR, v_task_desc IN VARCHAR, v_task_status IN VARCHAR) IS v_task_id task.task_id%TYPE;

v_request_id task.request_id%TYPE;

v_medical_id Varchar(30);

v_medical_status Varchar(30);

BEGIN
SELECT request_id INTO v_request_id
FROM Request
WHERE request_type = "Medical";


SELECT task_id INTO v_task_id
FROM task
WHERE request_id = v_request_id ;


SELECT medical_status INTO v_medical_status
FROM Medical m,
     medicalRequest mr,
     Request r
WHERE mr.request_id = r.request_id
  AND mr.medical_id = m.medical_id;

IF (v_medical_status = "Available") THEN
UPDATE Task
SET task_status = "Done"'enter code here
WHERE request_id = v_request_id;

DBMS_OUTPUT.PUT_LINE('Medical Task Done');

ELSE DBMS_OUTPUT.PUT_LINE('Medical Task Not Done');

DBMS_OUTPUT.PUT_LINE('Due To The Medical Product Is Currently Not Available');

END IF;

END;

/

  • 0
    Какую ошибку вы получаете? Пожалуйста, предоставьте больше деталей
  • 0
    Ошибки: PROCEDURE PRC_MEDIC_CHECK_STATUS Строка: 1 PLS-00410: повторяющиеся поля в RECORD, TABLE или списке аргументов не допускаются Строка: 0 PL / SQL: анализ модуля компиляции прекращен
Теги:

1 ответ

0
Лучший ответ

Ваши переменные параметра определяются как локальная переменная в хранимой процедуре, поэтому ошибка. Обычно мы используем p_ * для передачи параметров, поэтому я настоятельно рекомендую вам определить вашу хранимую процедуру, как показано ниже:

CREATE OR REPLACE PROCEDURE prc_medic_check_status(p_task_id IN VARCHAR, p_request_id IN VARCHAR, p_task_desc IN VARCHAR, p_task_status IN VARCHAR) 

Затем измените имена новых параметров в запросе:

SELECT task_id INTO v_task_id 
FROM task 
WHERE request_id = p_request_id ;
  • 0
    да ошибка дублирования ушла. Благодарю. Но есть еще одна ошибка, она показывает, что Ошибка в строке: 73 .... но моя процедура имеет только 34 строки ... не знаю почему. Кстати, я использую Oracle Live SQL
  • 0
    Трудно отладить вашу процедуру без примеров данных для работы. Если вам нравится мой предыдущий ответ, примите его, тогда мы сможем решить остальные вопросы.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню