martes, 3 de abril de 2012

Trigger en Oracle

Este es un trigger transaccional de Oracle para comunicarse a Sql Server
CREATE OR REPLACE 
TRIGGER tgrInsertaLocalizadorEnKuve
  AFTER UPDATE ON tarima
  REFERENCING NEW AS NEW
  FOR EACH ROW
DECLARE PRAGMA AUTONOMOUS_TRANSACTION;
  vFecha DATE := SYSDATE;
  --vClaveProducto CHAR(40);
  --vClaveTipoProducto NUMBER;
BEGIN

  -- LoteInterno = noLocalizador
  -- CostoPromedio = idEstatus
  -- loteFabricante = imei
  -- loteProveedor = numeroControl
  
  --SELECT claveTipoProducto 
  --INTO vClaveTipoProducto
  --FROM producto
  --WHERE claveProducto = vClaveProducto;
  
  --IF vClaveTipoProducto = 1 THEN -- Si el producto es de tipo GPS
  IF :NEW.claveProducto IN ('1', '2', '21', '22') THEN

    INSERT INTO localizadorTemporal@hsodbcDes
    VALUES(:NEW.loteInterno, :NEW.costoPromedio,  :NEW.loteFabricante, :NEW.loteProveedor, vFecha);
    COMMIT;
    
  END IF;
  
  EXCEPTION
  WHEN OTHERS THEN
      raise_application_error(-20001,'Hubo error: '||SQLCODE||' -ERROR- '||SQLERRM);

END;