ʕ≧ᴥ≦ʔ Rodrigo's blog

Verificando se uma string é um tipo data com PL/SQL

Um snippet de código de um exemplo didático (sem considerar o desempenho) de como validar uma data usando o tratamento de exceções e os blocos aninhados do PL/SQL.

DECLARE
   v_date   VARCHAR2 (20) := '01-02-2009';
BEGIN
   DBMS_OUTPUT.put_line (TO_DATE (v_date, 'mm/dd/yyyy'));
EXCEPTION
   WHEN OTHERS
   THEN
      BEGIN
         DBMS_OUTPUT.put_line (TO_DATE (v_date, 'mm-dd-yyyy'));
      EXCEPTION
         WHEN OTHERS
         THEN
            BEGIN
               DBMS_OUTPUT.put_line (TO_DATE (v_date, 'MON dd yyyy'));
            EXCEPTION
               WHEN OTHERS
               THEN
                  BEGIN
                     DBMS_OUTPUT.put_line (TO_DATE (v_date, 'mm-dd-yy'));
                  EXCEPTION
                     WHEN OTHERS
                     THEN
                        BEGIN
                           DBMS_OUTPUT.put_line (TO_DATE (v_date, 'mm/dd/yy'));
                        EXCEPTION
                           WHEN OTHERS
                           THEN
                              BEGIN
                                 DBMS_OUTPUT.put_line (TO_DATE (v_date, 'dd-mm-yy'));
                              EXCEPTION
                                 WHEN OTHERS
                                 THEN
                                    BEGIN
                                       DBMS_OUTPUT.put_line (TO_DATE (2439856 + v_date, 'j'));
                                    EXCEPTION
                                       WHEN OTHERS
                                       THEN
                                          DBMS_OUTPUT.put_line (TO_DATE(NULL));
                                    END;
                              END;
                        END;
                  END;
            END;
      END;
END;

Got feedback? 😊😐☹️

#bancodedados #database #oracle #plsql