我的目标是创建PL/SQL过程EditRegion(par_ID int,par_Name varchar2)其中如果par_ID <> 0那么它应该(对于REGIONS中的现有语句,其中REGION_ID = par_ID)使用par_Name中的值更新REGION_NAME。如何在PL中使用Select max和Insert在一起sql
我的else应该是par_ID = 0,然后插入新的slog到REGIONS_NAME = par_Name的REGIONS和REGION_ID号码中,这个REGION_ID号码是表中最大的REGION_ID的一个更大的值。我正在使用这个最大功能,我在网上找到了一个地方,我不知道如何解决这个问题。
CREATE OR REPLACE PROCEDURE EditRegion
AS
par_ID int;
par_Name VARCHAR2(10) ;
REGION_ID : = SELECT MAX (REGION_ID),from REGIONS ;
BEGIN
if par_ID<>0 then
UPDATE regions
SET REGION_NAME = par_NAME
WHERE REGION_ID = par_ID ;
else
INSERT into REGIONS
(REGION_ID,REGION_NAME)
VALUES
(REGION_NAME := par_NAME ,
REGION_ID := REGION_ID +1);
END IF;
END;
/
是这个程序应该得到的参数?看起来你没有填充'par_ID'和'par_Name' – sagi
不,它应该独立工作 – Alex13
那么'par_ID'如何等于0?以及'par_NAME'如何获得任何价值? – sagi