PL / SQL在过程中的第一行中更改值

问题描述 投票:1回答:1

我不知道错误在哪里。我需要编写一个过程,其中一个特定的行将被更改。每次启动它,我都会得到:

错误: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; 
sql oracle stored-procedures plsql procedure
1个回答
2
投票

我认为您想要的语法是:

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关键字(未指定时为默认值,但我发现最好对此加以明确)。

© www.soinside.com 2019 - 2024. All rights reserved.