我不知道错误在哪里。我需要编写一个过程,其中一个特定的行将被更改。每次启动它,我都会得到:
错误:PROCEDURE 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;
我认为您想要的语法是:
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
关键字(未指定时为默认值,但我发现最好对此加以明确)。