PL / SQL изменить значение в 1 строке в процедуре - PullRequest
1 голос
/ 05 апреля 2020

Я не знаю, где ошибка. Я должен написать процедуру, в которой будет изменена строка 1 Speci c. Каждый раз, когда я обедал, писал мне:

Ошибки: ПРОЦЕДУРА RENAME_FLYTICKET Строка / Кол: 1/65 PLS-00103: Обнаружен символ "(" при ожидании одного из следующих действий:

: =.), @% символ по умолчанию Символ ": =" был заменен на "(" для продолжения.

CREATE OR REPLACE PROCEDURE rename_flyticket (code_ticket INTEGER, new_id varchar2(50)) AS  
 BEGIN  
   UPDATE Flyticket SET id = new_id WHERE flyticketcode = code_ticket;    
COMMIT;  
END; 

1 Ответ

2 голосов
/ 05 апреля 2020

Я думаю, что вам нужен следующий синтаксис:

create or replace procedure rename_flyticket (
    p_code_ticket in integer, 
    p_new_id in varchar2
) 
as
begin  
    update flyticket set id = p_new_id where flyticketcode = p_code_ticket;    
    commit;  
end; 
/

Основная проблема исходного кода заключается в том, что типы данных не принимают длину / точность. Так что VARCHAR2(50) должно быть просто VARCHAR2.

Я также добавил ключевое слово IN для параметров (это значение по умолчанию, если оно не указано, но я считаю, что лучше об этом явно указывать).

...