Erreur d'exécution d'un trigger et option manquante ?
Bonjour,
Je rencontre le problème suivant dont j'aimerais que vous m'aidiez à comprendre.
Code:
1 2 3 4 5 6
| INSERT INTO RANDRIANO.RDR_MYClasses (ID, Name, Type) values (RANDRIANO.mypkg_guid.guidclass,'Class 4', '4')
ORA-00922: option erronée ou absente
ORA-06512: à "RANDRIANO.RDR_CREATETAB", ligne 11
ORA-06512: à "RANDRIANO.A_I_RDR_MYClasses", ligne 75
ORA-04088: erreur lors d'exécution du déclencheur 'RANDRIANO.A_I_RDR_MYClasses' |
Les codes correspondants a ce trigger et à cette procédure est:
Code:
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
CREATE OR REPLACE PROCEDURE RANDRIANO."RDR_CREATETAB" (v_tab
varchar2)
is
v_cdef varchar2 (256);
pragma autonomous_transaction;
begin
EXECUTE IMMEDIATE
'CREATE TABLE ' || v_tab ||
' ( idequipment varchar2(38) PRIMARY KEY)';
end;
CREATE OR REPLACE TRIGGER RANDRIANO."A_I_RDR_MYCLASSES" AFTER
INSERT ON RANDRIANO.RDR_MYCLASSES FOR EACH ROW Declare
v_Name varchar2 (256);
v_Type int;
v_TableName varchar2 (512);
v_DEFTableName varchar2 (512);
v_ColumnName varchar2 (512);
v_ColumnType varchar2 (512);
v_ColumnTypeChar varchar2 (512);
v_ColumnPrecision int;
v_ColumnHasPrecision number(1);
v_IsNullable varchar2(25);
v_Default varchar2 (256);
v_ColumnDEFAULT varchar2 (4000);
v_fk_name varchar2(30);
v_namefk varchar2(23);
v_fk_name1 varchar2(30);
v_namefk1 varchar2(14);
v_cdef varchar2(256);
BEGIN
PKG_UPDATEAVAINS.v_compt := PKG_UPDATEAVAINS.v_compt+1;
--dbms_output.put_line('ici');
select :new.name CLE into v_name from dual RDR_MYCLASSES;
select :new.type CLE into v_type from dual RDR_MYCLASSES;
v_TableName := 'RDR_ATT_Equi_'||v_Name;
-- begin if
IF (v_Type = 1) then
v_DEFTableName := 'EQUIPMENT';
end if;
IF (v_Type = 2) then
v_DEFTableName := 'TYPE';
end if ;
IF (v_Type = 4)then
v_DEFTableName := 'RDR_VARS';
end if;
IF (v_Type = 8)then
v_DEFTableName := 'PLUGMAP';
end if ;
IF (v_Type = 16) then
v_DEFTableName := 'CONNECTION';
end if ;
IF (v_Type = 32)then
v_DEFTableName:= 'RULE';
end if ;
IF (v_Type = 64) then
v_DEFTableName := 'ACCESS';
end if ;
IF (v_Type = 128) then
v_DEFTableName := 'OBJ_DEF';
end if ;
IF (v_Type = 256) then
v_DEFTableName := 'SIMUL';
end if ;
--end if
--create table class
v_tablename := substr(v_tablename,1,30);
rdr_createtab(v_TableName); -- ligne n° 75 de ce trigger |
Je me demande si c'est un problème de casse ou bien un problème de roles c'est à dire de GRANT mais je remarque que le schéma ne doit pas être un schéma système (sysman)