CREATE OR REPLACE FUNCTION esBisiesto(fecha DATE)
RETURN NUMBER
AS
esBisiesto NUMBER(1,0) := 0;
anio NUMBER(4,0) := TO_NUMBER(TO_CHAR(fecha, 'YYYY'),'9999'); --Extrae el anio
BEGIN
IF anio MOD 4 = 0 AND (anio MOD 100 <> 0 OR anio MOD 400 = 0)
THEN
esBisiesto := 1;
END IF;
RETURN esBisiesto;
END;
Este es un blog dedicado a explicar temas básicos, de programación Web, que comprenden HTML, Javascript, CSS, SQL, C# y ASP.NET.
Mostrando entradas con la etiqueta Oracle. Mostrar todas las entradas
Mostrando entradas con la etiqueta Oracle. Mostrar todas las entradas
domingo, 2 de febrero de 2014
Año bisiesto en Oracle.
Hoy expondré una función para determinar si un año es bisiesto en Oracle.
Si tienen dudas acerca del algoritmo. Lo pueden checar el mi artículo de año bisiesto en Sql server.
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;
Etiquetas:
Oracle,
Oracle trigger,
trigger,
trigger en Oracle
Suscribirse a:
Entradas (Atom)