Aiuto   |   Contattaci   |  Mappa del sito   |     

        

 

 

Ricerca

 

cerca

   
 
 
 

Informazioni

Demo

Forums

Siti Preferiti

Accesso Riservato

21/07/2009

Formazione - Esempi Oracle

CREAZIONE TRIGGER

Esempio di creazione di trigger per una semplice gestione di un campo contatore
che si basa sui valori presenti nel campo stesso (calcolando di volta in volta il massimo valore + 1).
 

create or replace trigger gest_cod_prog
  before insert on <tabella>  
  for each row
declare
  newid NUMBER;
begin
  select max(<campo_id>) into  newid from <tabella> ;
  if (newid is null) then 
       newid:=0 ;
  end if;
  newid := newid + 1 ;
  
  :new.<campo_id> := newid ;
end gest_cod_prog;
 
Esempio di creazione di trigger per una semplice gestione di un campo contatore
che si basa su una Sequence definita ad hoc.
 
create or replace trigger gest_cod_prog_S
  before insert on <tabella>  
  for each row
declare
  newid NUMBER;
begin
  select SEQ_<tabella>_PKID.NEXTVAL into newid from DUAL ;
 
  :new.<campo_id> := newid ;
end gest_cod_prog_S;

Definizione della Sequence necessaria al funzionamento del trigger 

create sequence SEQ_<tabella>_PKID
minvalue 0
maxvalue 99999999
start with 1
increment by 1
cache 20;
 
MODIFICA DATI SPAZIALI
Esempio di query per modificare il tipo dati spaziali di una tabella.
Attenzione!!! 
Il seguente comando deve essere lanciato solo se si è sicuri che le geometrie contenute sono della tipologia che si sta inserendo:
update <nome_tabella> T 
set
<nome_campo_geometria> = MDSYS.SDO_GEOMETRY(3002,null,null,T.GEOMETRY..SDO_ELEM_INFO,T.SDO_ORDINATES)
nell'esempio si sostituisce la struttura geometry del campo presente con una struttura uguale a quella presente eccetto che per: 
primo argomento GTYPE che viene imposto a 3002
secondo argomento SRID (sistema di coordinate) che viene impostato a null
terzo argomento sdo_point scarsamente utilizzato in quanto le coordinate spesso vengono messe anche per i punti nell'oggetto sdo_ordinates.
 

08/10/2009