-3
oracle apexにトリガーを作成しようとしています。これは、UniversityRefNo列にあるすべてのデータを選択し、ユーザーが既存の値を入れることを許可しません。しかし、私はこのエラーが発生し続ける:"ORA-24344: success with compilation error."
もし誰かが間違っていることを教えてくれればそれは素晴らしいだろう。ORA-24344:コンパイル・エラーで成功しました。トリガー・アペックス
CREATE TABLE VOLUNTEER(
Volunteer_id NUMBER(5) PRIMARY KEY,
Title VARCHAR2(5),
VolName VARCHAR2(30),
UniversityRefNo VARCHAR2(10),
Address_Line_1 VARCHAR2(30),
Address_Line_2 VARCHAR2(12),
PostCode VARCHAR2(12),
Mobile_Number NUMBER(12),
Home_Number NUMBER(12),
Email VARCHAR2(25),
Ethnic_Group VARCHAR2(10),
VolunteerType VARCHAR2(10),
Register_Disable VARCHAR2(3),
Gender VARCHAR2(1),
Medical_Details VARCHAR2(20),
PassPortNumber NUMBER(10),
Nationality VARCHAR2(10),
Passport_Expiry_Date DATE,
Date_of_Birth DATE,
Course_Name VARCHAR2(20),
Course_Year VARCHAR2(10),
Area_of_work VARCHAR2(15),
StaffManagerName VARCHAR2(20),
StaffManagerEmail VARCHAR2(20),
StaffManagerPhone VARCHAR2(12));
CREATE or replace trigger unirefnoTrigger
before insert or update of UniversityRefNo ON VOLUNTEER for each row
begin
SELECT UniversityRefNo from VOLUNTEER
if(UniversityRefno = :new.UniversityRefNo) then raise application error(UniversityRefNO || :new.UniversityRefNo || 'already exists');
end if;
end;
私はOPの意図は、 "ORA-00001:一意制約(constraint_name)違反"よりも説明的なエラーメッセージを与えることだと思いますが、これを行うより良い方法があります。 – Typo