1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
CREATE TABLE FIELDS (
ID NUMBER,
NOM VARCHAR2(25 CHAR),
ACL_DEF XMLTYPE,
COD_HOP VARCHAR2(5 CHAR))
XMLTYPE ACL_DEF STORE AS OBJECT RELATIONAL
XMLSCHEMA "http://XXXX/projet/YYY/schema/aclfields.xsd"
ELEMENT "FIELDS"
/
ALTER TABLE FIELDS ADD constraint VALIDATE_FIELDS CHECK (XMLIsValid(ACL_DEF)=1)
/
-- trigger
create or replace trigger TG_INITFIELDS
before insert on "FIELDS"
for each row
declare
template CLOB ;
begin
SELECT extract(res, '/Resource/Contents/*').getclobval() INTO template FROM RESOURCE_VIEW WHERE EQUALS_PATH(res,'/home/D47/xml_templates/xml_templates_fields.xml') > 0 ;
if inserting then
if :NEW."ID" is null then
select SQ_FIELDS.nextval INTO :NEW."ID" from dual;
select xmltype(template) INTO :NEW."ACL_DEF" from dual ;
end if;
end if;
end;
/
SHOW ERRORS;
/
SQL> insert into fields values(null,'sample',null,'00087') ;
insert into fields values(null,'sample',null,'00087')
*
ERREUR a la ligne 1 :
ORA-00600: code d'erreur interne, arguments : [qmxtcUMkProcessImage:invtype],
[], [], [], [], [], [], []
ORA-04088: erreur lors d'execution du declencheur 'D47.TG_INITFIELDS' |
Partager