| 12
 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