如何使用在pl sql中选择max和Insert

时间:2016-06-07 10:02:42

标签: sql oracle plsql

我的目标是创建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;
/

2 个答案:

答案 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