私はこの動作するコードを持っています。を実行するたびに、このようINSERT INTO "HR"."CITY" (CITY_ID) VALUES (0);
にデータがCITY_ID
1つずつ増えCT0001, CT0002 ... CT0015
ます。
CREATE TABLE "HR"."CITY"
(
"CITY_ID" VARCHAR2(40 BYTE)
) ;
CREATE OR REPLACE TRIGGER "HR"."PK_MAX_TRIGGER_CITY"
BEFORE INSERT ON CITY
FOR EACH ROW
DECLARE
CNT NUMBER;
PKV CITY.CITY_ID%TYPE;
NO NUMBER;
BEGIN
SELECT COUNT(*)INTO CNT FROM CITY;
IF CNT=0 THEN
PKV:='CT0001';
ELSE
SELECT 'CT'||LPAD(MAX(TO_NUMBER(SUBSTR(CITY_ID,3,LENGTH(CITY_ID)))+1),4,'0') INTO PKV
FROM CITY;
END IF;
:NEW.CITY_ID:=PKV;
END;
/
ALTER TRIGGER "HR"."PK_MAX_TRIGGER_CITY" ENABLE;
私がやりたいのはこれE1, E2 ... E15
です。
コードを次のように変更します。
IF CNT=0 THEN
PKV:='E1';
ELSE
SELECT 'E'||LPAD(MAX(TO_NUMBER(SUBSTR(CITY_ID,3,LENGTH(CITY_ID)))+1),4,'0') INTO PKV
最初はデータベースに追加E1
しますが、2回目は機能しません。ブラケットの内側にあるものは、私が消化するのが難しいだけです。ここの誰かがブラケットで実際に何が起こっているのかを私に説明し、私がこの問題を解決するのを手伝ってくれることを望んでいました。
前もって感謝します。