Моя цель - создать PL/SQL-процедуру EditRegion (par_ID int, par_Name varchar2), где If par_ID <> 0, то он должен (для существующего оператора в REGIONS, где REGION_ID = par_ID) обновить REGION_NAME со значениями из par_Name.Как использовать Select max и Insert вместе в pl sql
и my else должно быть, если par_ID = 0, а затем вставить новый slog в REGIONS, где REGION_NAME = par_Name и номер REGION_ID, который для одного больше от самого большого REGION_ID в таблице. Я использую эту функцию max, которую я нашел где-то в Интернете, и я не уверен, как это исправить.
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