在oracle中使用带有REGEXP的日期类型

时间:2017-12-15 05:24:50

标签: oracle plsql

我想知道是否有人可以告诉我为什么第一个不起作用而第二个不起作用?在此先感谢:)

DECLARE
    fecha DATE:= TO_DATE('20/04/1996', 'DD/MM/YYYY'); 
BEGIN

    IF NOT REGEXP_LIKE(TO_CHAR(fecha), '^[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}') THEN
         DBMS_OUTPUT.PUT_LINE('DATE IS NOT CORRECTLY');
    ELSE
        DBMS_OUTPUT.PUT_LINE('DATE CORRECTLY');
    END IF;
END;


-------------------------

DECLARE
    fecha varchar2(10):= '20/04/1996';
BEGIN
    IF NOT REGEXP_LIKE(fecha, '^[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}') THEN
         DBMS_OUTPUT.PUT_LINE('FECHA INGRESADA INCORRECTAMENTE');
    ELSE
        DBMS_OUTPUT.PUT_LINE('FECHA INGRESADA CORRECTAMENTE');
    END IF;
END;

我应该如何在触发器内写字?我怀疑:NEW.date_startshould I put TO_CHAR(:NEW.fecha_ingreso)

 IF NOT REGEXP_LIKE(:NEW.date_start, '^[0-9]{1,2}/[0-9]{2}/[0-9]{4}') THEN
          RAISE error_formato_fecha;
      END IF;

0 个答案:

没有答案