【发布时间】:2014-05-10 02:42:40
【问题描述】:
当我在 SQLPLUS 中执行此脚本时,我遇到了一个错误,告诉我声明“ENSI”(第 11 行)并声明“ENIT”(第 12 行),但我只需要将我的变量初始化为那些String 知道为什么吗?
create or replace trigger ETUDIANT_TRIGGUER
Before update on ETUDIANT
for each row
declare
c number;
id_edu ETUDIANT.id_etu%TYPE := :new.id_etu;
NOM ETUDIANT.NOM%TYPE := :new.NOM;
adresse ETUDIANT.adresse%TYPE := :new.adresse;
cursus ETUDIANT.cursus%TYPE := :new.cursus;
UNIVERSITE ETUDIANT.UNIVERSITE%TYPE := :new.UNIVERSITE;
SITE_ENSI ETUDIANT.UNIVERSITE%TYPE := "ENSI";
SITE_ENIT ETUDIANT.UNIVERSITE%TYPE := "ENIT";
begin
if :new.ID_ETU is null then
raise_application_error(-20001,'ID_ETU est null');
end if;
select count(*) into c from ETUDIANT_ensi@site_ensi_link where ID_ETU= :new.ID_ETU;
if c > 0 then
raise_application_error(-20002, 'ID_ETU existe déjà dans le site _ensi');
end if;
select count(*) into c from ETUDIANT_enit@site_enit_link where ID_ETU= :new.ID_ETU;
if c > 0 then
raise_application_error(-20002, 'ID_ETU existe déjà dans le site _enit');
end if;
if UPPER(UNIVERSITE)=SITE_ENSI then
insert into ETUDIANT_ensi@site_ensi_link values(id_edu,NOM,adresse,cursus,NB_EMPRUNTS,UNIVERSITE);
end if;
if UPPER(UNIVERSITE)=SITE_ENIT then
insert into ETUDIANT_enit@site_enit_link values(id_edu,NOM,adresse,cursus,NB_EMPRUNTS,UNIVERSITE);
end if;
end;
/
【问题讨论】:
标签: triggers oracle11g sqlplus