我的目标是创建PL / SQL过程EditRegion(par_ID int,par_Name varchar2),其中如果par_ID<> 0则应该(对于REGIONS中的现有语句,REGION_ID = par_ID)使用par_Name中的值更新REGION_NAME
并且我的其他应该是如果par_ID = 0然后将新的slog插入REGIONS,其中REGION_NAME = par_Name,以及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;
/
答案 0 :(得分:1)
CREATE OR REPLACE PROCEDURE EditRegion(par_NAME in VARCHAR2)
AS
par_ID int;
BEGIN
SELECT MAX(REGION_ID) into par_ID from REGIONS ;
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
(par_NAME ,
SELECT MAX(REGION_ID)+1 FROM regions);
END IF;
END;
/
答案 1 :(得分:0)
猜猜这就是你要找的东西,
Option